vSphere의 Windows 가상 시스템에서 대형 UDP 패킷을 전송할 때 다른 트래픽이 무시해도 될 정도인 경우에도 처리량이 예상보다 낮거나 안정적이지 않습니다.

문제

Windows 가상 시스템에서 1024바이트보다 큰 UDP 패킷을 전송할 때 다른 트래픽이 무시해도 될 정도인 경우에도 처리량이 예상보다 낮거나 안정적이지 않습니다. 비디오 스트리밍 서버의 경우 비디오 재생이 일시 중지됩니다.

원인

1024바이트보다 큰 모든 UDP 패킷에 대해 Windows 네트워크 스택은 다음 패킷을 보내기 전에 전송 완료 인터럽트를 기다립니다. vSphere는 이러한 상황을 투명하게 해결하지 못합니다.

해결책

  • Windows 게스트 OS의 레지스트리를 수정하여 UDP 패킷에 대해 Windows 동작이 변경되는 임계값(바이트)을 늘립니다.
    1. HKLM\System\CurrentControlSet\Services\Afd\Parameters 레지스트리 키를 찾습니다.
    2. 이름이 FastSendDatagramThreshold이고 종류가 DWORD인 값 1,500을 추가합니다.
    Windows 레지스트리에서 이 문제를 해결하는 방법에 대한 자세한 내용은 http://support.microsoft.com/kb/235257을 참조하십시오.
  • 가상 시스템 NIC의 병합 설정을 수정합니다.
    Windows 가상 시스템에 VMXNET3 vNIC 어댑터가 있는 경우 가상 시스템의 .vmx 파일에서 다음 매개 변수 중 하나를 구성합니다. vSphere Client를 사용하거나 .vmx 파일을 직접 수정합니다.
    작업 매개 변수
    가상 시스템의 인터럽트 속도를 예상 패킷 속도보다 높은 값으로 설정합니다. 예를 들어 예상되는 패킷 속도가 초당 15,000번의 인터럽트인 경우 인터럽트 속도를 초당 16,000번의 인터럽트로 설정합니다. ethernetX.coalescingScheme 매개 변수를 rbc로 설정하고, ethernetX.coalescingParams 매개 변수를 16000으로 설정합니다. 기본 인터럽트 속도는 초당 4000번의 인터럽트입니다.

    ethernetX.coalescingScheme

    ethernetX.coalescingParams

    rbc

    16000

    낮은 처리량 또는 지연 시간에 민감한 워크로드에 대해 병합을 비활성화합니다. 지연 시간이 낮은 워크로드 구성에 대한 자세한 내용은 Best Practices for Performance Tuning of Latency-Sensitive Workloads in vSphere VMs(vSphere VM에서 지연 시간에 민감한 워크로드의 성능 조정을 위한 모범 사례)을 참조하십시오. ethernetX.coalescingScheme 사용 안 함

    이전 ESXi 릴리스의 병합 알고리즘으로 복구합니다.

    참고: 최신 vSphere 릴리스에서는 이전 알고리즘으로 복구하는 기능을 사용할 수 없습니다.
    ethernetX.coalescingScheme calibrate

    ethernet 옆의 X는 가상 시스템에서 vNIC의 시퀀스 번호를 나타냅니다.

    .vmx 파일에서 매개 변수를 구성하는 방법에 대한 자세한 내용은 "vSphere 가상 시스템 관리" 설명서를 참조하십시오.

  • ESXi 호스트 병합 설정을 수정합니다.
    이 방법은 호스트에 있는 모든 가상 시스템과 모든 가상 시스템 NIC에 영향을 미칩니다.

    vSphere Client를 사용하거나 ESXi Shell에서 호스트에 대해 vCLI 콘솔 명령을 사용하여 호스트에 대한 고급 시스템 설정 목록을 편집할 수 있습니다.

    작업 vSphere Client의 매개 변수 esxcli system settings sdvanced set 명령에 대한 매개 변수
    기본 인터럽트 속도를 예상 패킷 속도보다 높게 설정합니다. 예를 들어 초당 15,000번의 인터럽트가 예상되는 경우 인터럽트 속도를 16,000으로 설정합니다.

    Net.CoalesceScheme

    Net.CoalesceParams

    /Net/CoalesceScheme

    /Net/CoalesceParams

    rbc

    16000

    낮은 처리량 또는 지연 시간에 민감한 워크로드에 대해 병합을 비활성화합니다. 지연 시간이 낮은 워크로드 구성에 대한 자세한 내용은 Best Practices for Performance Tuning of Latency-Sensitive Workloads in vSphere VMs(vSphere VM에서 지연 시간에 민감한 워크로드의 성능 조정을 위한 모범 사례)을 참조하십시오. Net.CoalesceDefaultOn /Net/CoalesceDefaultOn 0

    이전 ESXi 릴리스의 병합 체계로 복구합니다.

    참고: 최신 vSphere 릴리스에서는 이전 알고리즘으로 복구하는 기능을 사용할 수 없습니다.
    Net.CoalesceScheme /Net/CoalesceScheme calibrate

    vSphere Client에서 호스트를 구성하는 방법에 대한 자세한 내용은 "vCenter Server 및 호스트 관리" 설명서를 참조하십시오. vCLI 명령을 사용하여 호스트 속성을 설정하는 방법에 대한 자세한 내용은 "ESXCLI 참조" 설명서를 참조하십시오.