IIS 2016의 느린 업로드

IIS 2016의 느린 업로드

저는 IIS가 설치된 두 개의 VM에서 NLB를 사용하여 트래픽과 공유 구성/ssl의 균형을 유지하면서 Server2016을 실행하고 있습니다. 내 업로드 속도는 256KB/s(2Mb)로 제한되어 있는 것 같습니다. 내 인터넷 연결은 기가비트 광섬유입니다.

문제를 파악하기 위해 몇 가지 테스트를 실행했습니다. 업로드 및 제출 버튼이 있는 간단한 .net 웹 앱을 만들고 28MB 파일을 업로드했습니다.

  • IIS 상자에 앱을 넣을 때https://domain.tld/upload, Chrome 개발자 도구에 따르면 1.9분이 걸렸으며 이는 대략 256KB입니다.

  • Visual Studio를 사용하여 만들었기 때문에 IIS Express를 통해 데스크탑 Win 10 시스템에서 앱을 실행하고 라우터를 통해 임의의 포트를 열었으며 업로드에 761ms가 걸렸습니다. 이는 대략 ~37MB/s입니다.

나는 그 테스트를 몇 번 반복했고 거의 같은 결과를 얻었습니다. 동일한 상자에서 업로드하고 다운로드한다는 점을 고려하면 실제로 ~74MB/s-ish, 즉 이론적 기가비트 업로드 및 다운로드의 30%를 사용하고 있습니다. 그래서 ISP 문제는 아닌 것 같습니다.

또한 NLB 클러스터를 중단하고 모든 트래픽을 하나의 상자로 라우팅하려고 시도했지만 결과는 동일했습니다.

IIS가 왜 그렇게 느린지에 대한 아이디어가 있습니까?

답변1

다른 사람이 궁금해할 경우를 대비해 게시합니다.... 문제는 NLB였습니다.

https://blogs.technet.microsoft.com/netgeeks/2017/07/13/the-nlb-deployment-reference-all-you-need-to-know-to-implement-and-deploy-microsoft-network- 로드 밸런싱/

아웃바운드 트래픽의 경우 큰 문제는 아니지만 "제대로" 작동하려면 네트워크를 약간 조정해야 합니다.

  • 유니캐스트: 두 노드 모두 MAC이 동일한 '클러스터' MAC 주소로 대체되었기 때문에 네트워크 스위치가 라우팅 테이블을 제대로 업데이트할 수 없고 모든 포트를 플러딩할 수 없게 되어 너트가 작동하게 됩니다. 해결책은 허브를 사용하거나 별도의 VLAN을 사용하는 것입니다.
  • 멀티캐스트: 각 노드는 자신의 MAC 주소를 유지하고 추가 멀티캐스트 MAC을 얻습니다. 스위치는 물리적 NIC에 연결되어 있지 않기 때문에 MAC을 '학습'할 수 없으므로 패킷을 삭제하거나 유니캐스트처럼 플러딩됩니다. 해결책은 네트워크에 정적 ARP 및 MAC 항목을 추가하는 것입니다.
  • 멀티캐스트 IGMP: 멀티캐스트와 동일하지만 대신 멀티캐스팅 작동 방식을 '학습'할 수 있도록 IGMP 가능 스위치가 필요합니다. 따라서 해결책이 없습니다. 작동하거나 작동하지 않을 것입니다.

추가 테스트를 통해 IIS 클러스터에 대용량 파일을 업로드할 때 동일한 스위치에 있는 다른 시스템/VM에서 끔찍한 네트워크 성능을 볼 수 있으므로 이는 플러딩 문제를 확인하는 것으로 보입니다.

내 작업 환경의 특별한 상황에서 네트워크는 IGMP 활성화를 포함한 모든 네트워크 인프라 변경에 대해 "아니요"라고 말했습니다.

우리는 고가용성을 위해 두 대의 서버를 원했기 때문에 대신 감시용 공유 디스크와 IIS 공유 구성 및 중앙 집중식 SSL용 공유 디스크가 있는 2개 노드 장애 조치 클러스터를 만들기로 결정했습니다. Active-Active는 아니지만 패치하는 동안 가동 시간을 유지할 수 있습니다. IIS에서 클러스터를 수행하는 것이 권장되지 않는다는 것을 알고 있지만 하드웨어 부하 분산 장치나 적절하게 구성할 수 있는 네트워크가 없는 경우 이렇게 해야 합니다. :)

관련 정보