
Server 2019에서는 심각한 성능 문제가 있습니다. Server 2016에 비해 읽기 및 쓰기 성능이 매우 낮습니다. 기존 서버를 교체하기 위해 고객 사이트에 여러 대의 서버를 설치했는데 모든 고객이 서버에서 파일을 여는 속도가 느리다고 불평했습니다.
사무실에 테스트 서버를 설치하고 읽기 및 쓰기 속도를 측정한 결과 2019년과 2016년 사이에 큰 차이가 있음을 발견했습니다.
Hyper V를 사용하여 2019 호스트에 2016 및 2019 VM을 설치하고 Lan 속도 테스트를 사용하여 VM 및 호스트에 대한 읽기/쓰기 속도를 측정했습니다.
서버는 Intel 쿼드 포트 네트워크 카드를 사용하여 RAID 10으로 구성된 8x 15K 디스크를 갖춘 Dell PowerEdge입니다.
2016 VM의 읽기/쓰기 속도는 쓰기 600Mbps, 읽기 780Mbps입니다.
2019 VM의 읽기/쓰기 속도는 쓰기 220Mbps, 읽기 115Mbps입니다.
두 VM 모두 동일한 가상 스위치를 사용하고 정확히 동일하게 구성되었으며 동일한 가상 디스크에 있습니다. 유일한 차이점은 두 VM에 완전히 패치된 운영 체제입니다.
이제 고객 사이트의 다양한 서버 사양에서 이를 테스트한 결과 모든 곳에서 동일한 결과를 발견했습니다. 2019년은 2016년보다 훨씬 느립니다.
모든 BIOS 및 드라이버는 Dell에서 제공하는 최신 버전입니다.
이는 하나의 서버에만 국한된 것이 아니며 여러 서버에서 발생하며 그 중 일부는 기존 SBS 2011 서버를 대체했지만 기존 SBS 상자보다 느리게 실행됩니다. 다른 사람이 이 문제를 발견한 적이 있습니까?
답변1
RSC(Receive Segment Coalescing)로 인해 이 현상이 나타날 수 있습니다. 간단히 말해서 RSC는 효율성을 위해 여러 개의 작은 세그먼트를 처리하는 대신 더 큰 세그먼트를 처리하기 위해 세그먼트를 결합하는 TCP 세그먼트 집합입니다. 이는 Windows Server 2019의 기본 구성 변경으로 도입되었으며 다른 환경에서도 유사한 문제의 원인이 되었습니다.
PowerShell을 사용하여 IPv4 트래픽에 대해 클라이언트의 RSC를 비활성화할 수 있습니다
Disable-NetAdapterRsc -Name $nic -IPv4
.PowerShell을 사용하여 Hyper-V vSwitch의 현재 RSC 상태를 확인할 수 있습니다
Get-VMSwitch -Name $vSwitch | Select *RSC*
.PowerShell을 사용하여 Hyper-V vSwitch의 RSC를 완전히 비활성화할 수 있습니다
Set-VMSwitch -Name $vSwitch -EnableSoftwareRsc:$FALSE
. 이는 기존 vSwitch 연결에 영향을 미치지 않습니다.
항목 #2와 #3에서는 Hyper-V PowerShell 모듈에 대한 액세스 권한과 적절한 Hyper-V 관리 권한이 필요합니다. Hyper-V vSwitch의 여러 컴퓨터에서 이 현상이 나타난다고 언급한 것처럼 항목 #3에서 안도감을 찾을 수 있을 것입니다. 참고자료를 제공해 드렸습니다여기그리고여기.
답변2
이 시간이 지난 후에도 Windows 2019가 여전히 다소 손상되어 있다는 것을 믿을 수 없지만 다음 설정을 조정하고 다시 테스트해 보시기 바랍니다.
랜
Set-NetTCPSetting -SettingName "DatacenterCustom" -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName "DatacenterCustom" -CwndRestart True
Set-NetTCPSetting -SettingName "DatacenterCustom" -ForceWS Disabled
Set-NetTCPSetting -SettingName "Datacenter" -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName "Datacenter" -CwndRestart True
Set-NetTCPSetting -SettingName "Datacenter" -ForceWS Disabled
핏기 없는
Set-NetTCPSetting -SettingName "InternetCustom" -CongestionProvider CTCP
Set-NetTCPSetting -SettingName "InternetCustom" -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName "InternetCustom" -ForceWS Disabled
Set-NetTCPSetting -SettingName "Internet" -CongestionProvider CTCP
Set-NetTCPSetting -SettingName "Internet" -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName "Internet" -ForceWS Disabled
이는 2019년을 2016년과 조금 더 유사하게 재구성합니다.
답변3
댓글을 달려고 했는데 아직 평판이 없습니다.
Hyper-V 역할이 있는 호스트 OS로 Server 2019를 실행하는 새로운 Dell T440 서버와 제가 가동한 테스트 VM(Win10)에서 이 문제가 발생했습니다.
내 유선 노트북(Lenovo P52S)에서 Win11을 실행하면 평균 500Mbs 쓰기가 표시되었지만 LAN Speed Test Lite를 사용하면 테스트 VM에 90~220Mbs가 읽혔습니다. 항상 20Mb 파일을 사용합니다.
호스트 자체에서는 LAN Speed Test Lite를 사용하여 평균 500Mbs 쓰기 및 500Mbs+ 읽기를 볼 수 있으므로 내 노트북에는 아무런 문제가 없습니다.
가상 스위치에서 RSC를 비활성화했지만 개선되지 않았습니다. HOST, VM 및 노트북을 재부팅한 후에도 노트북과 VM 간의 읽기 성능이 여전히 좋지 않습니다. RSC를 다시 활성화했습니다.
오늘 아침 나는 오래된 MSI Win10 노트북을 꺼내서 시도해 보았습니다. LAN Speed Test Lite는 첫 번째 시도에서 500Mbs+ 쓰기, 700Mbs+ 읽기를 반환했습니다. 우와! 그럼 내 기계였나요? 몇 가지 테스트를 더 실행한 결과 읽기에서 최대 1600Mbs가 표시되었습니다. 그런 다음 20번 더 연속 테스트를 실행한 결과 20번의 테스트 중 4번의 테스트에서 읽기 속도가 쓰기 속도보다 낮아진(약 절반 정도) 것으로 나타났습니다.
그런 다음 가상 스위치에서 RSC를 (재)비활성화하고 추가로 20번의 테스트를 실행했습니다. 20개 모두 일관된 읽기 > 쓰기 결과를 반환했으며, 읽기에서 평균 700-800, 쓰기에서 450-600을 기록했습니다.
가상 스위치에서 RSC를 다시 활성화했는데 이번에는 20개 테스트 중 5개에서 읽기 속도가 느려졌습니다. 나에게는 1600Mbs+의 높은 읽기보다는 일관된 결과를 원하지만 220Mbs만큼 낮은 읽기는 RSC가 유지되는 것보다 낫습니다.
내 P52s 노트북으로 돌아가면 여전히 결과가 좋지 않지만 이는 Intel NIC와 관련된 것으로 보입니다. Realtek 칩셋과 함께 USB->기가비트 이더넷 어댑터를 사용할 때 속도 결과는 MSI 노트북에서 볼 수 있는 것과 같습니다. 나는 이것을 OP로 언급하므로 처음에 했던 것처럼 RSC가 비활성화된 경우에는 아무런 이점이 없습니다.
건배
마이크