LRO(대규모 수신 오프로드)를 사용하여 네트워크에서 도착하는 고속 패킷을 처리하기 위한 CPU 오버헤드를 줄이는 방법을 알아봅니다.

LRO는 들어오는 네트워크 패킷을 큰 버퍼로 재구성하고 크지만 소수인 결과 패킷을 호스트 또는 가상 시스템의 네트워크 스택으로 전송합니다. CPU는 LRO가 비활성화되었을 때보다 적은 수의 패킷을 처리해야 합니다. 이에 따라 특히 대역폭이 높은 연결의 경우에 네트워킹 활용도가 줄어듭니다.

LRO의 성능 향상의 이점을 누리려면 VMkernel 및 게스트 운영 체제를 포함하여 ESXi 호스트의 데이터 경로와 함께 LRO를 사용하도록 설정합니다. 기본적으로 LRO는 VMkernel 및 VMXNET3 가상 시스템 어댑터에서 활성화되어 있습니다.

데이터 경로의 TCP 패킷 집계 위치에 대한 자세한 내용은 VMware 기술 자료 문서 Understanding TCP Segmentation Offload (TSO) and Large Receive Offload (LRO) in a VMware environment를 참조하십시오.

ESXi 호스트의 모든 VMXNET3 어댑터에 대해 하드웨어 LRO 관리

호스트 물리적 어댑터의 하드웨어 기능을 활성화하여 게스트 운영 체제에서 구성하기 위한 리소스를 사용하는 대신 LRO 기술을 사용하여 VXMNET3 VM 어댑터에 대해 들어오는 TCP 패킷을 집계합니다.

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. Net.Vmxnet3HwLRO 매개 변수의 값을 편집합니다.
    • 하드웨어 LRO를 활성화하려면 Net.Vmxnet3HwLRO1로 설정합니다.
    • 하드웨어 LRO를 비활성화하려면 Net.Vmxnet3HwLRO0으로 설정합니다.
  5. 확인을 클릭하여 변경 사항을 적용합니다.

ESXi 호스트의 모든 VMXNET3 어댑터에 대해 소프트웨어 LRO 관리

호스트 물리적 어댑터가 하드웨어 LRO를 지원하지 않는 경우 VMXNET3 어댑터의 VMkernel 백엔드에서 소프트웨어 LRO를 사용하여 가상 시스템의 네트워킹 성능을 향상합니다.

vSphere에서는 IPv4 패킷과 IPv6 패킷에 대해 소프트웨어 LRO를 지원합니다.

사전 요구 사항

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. VMXNET3 어댑터에 대해 Net.Vmxnet3SwLRO 매개 변수의 값을 편집합니다.
    • 소프트웨어 LRO를 활성화하려면 Net.Vmxnet3SwLRO를 1로 설정합니다.
    • 소프트웨어 LRO를 비활성화하려면 Net.Vmxnet3SwLRO를 0으로 설정합니다.
  5. 확인을 클릭하여 변경 사항을 적용합니다.

LRO가 ESXi 호스트의 VMXNET3 어댑터에 대해 사용하도록 설정되어 있는지 확인

지연 시간에 민감한 워크로드를 실행하는 호스트에서 네트워킹 성능을 예상할 때 ESXi에서 LRO 상태를 검사합니다.

사전 요구 사항

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. VMXNET2 및 VMXNET3의 LRO 매개 변수의 값을 검토합니다.
    • 하드웨어 LRO의 경우 Net.Vmxnet3HwLRO 매개 변수를 검토합니다. 1과 같은 경우 하드웨어 LRO가 사용하도록 설정됩니다.
    • 소프트웨어 LRO의 경우 Net.Vmxnet3SwLRO 매개 변수를 검토합니다. 1과 같은 경우 하드웨어 LRO가 사용하도록 설정됩니다.

VMXNET 3 어댑터의 LRO 버퍼 크기 변경

VMXNET 3 네트워크 어댑터를 통해 가상 시스템 연결에 대한 패킷 집계용 버퍼 크기를 변경할 수 있습니다. 워크로드에서 TCP 확인 수를 줄이고 VMkernel의 효율성을 향상시키려면 버퍼 크기를 늘립니다.

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. Net.VmxnetLROMaxLength 매개 변수에 1에서 65535 사이의 값을 입력하여 LRO 버퍼 크기를 바이트로 설정합니다.
    기본적으로 LRO 버퍼 크기는 32000바이트입니다.

ESXi 호스트에서 모든 VMkernel 어댑터에 대해 LRO 활성화 또는 비활성화

ESXi 호스트에서 VMkernel 네트워크 어댑터에 대해 LRO를 사용하여 수신 인프라 트래픽의 네트워크 성능을 향상합니다.

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. Net.TcpipDefLROEnabled 매개 변수의 값을 편집합니다.
    • 호스트에서 VMkernel 네트워크 어댑터에 대해 LRO를 활성화하려면 Net.TcpipDefLROEnabled1로 설정합니다.
    • 호스트에서 VMkernel 네트워크 어댑터에 대해 소프트웨어 LRO를 비활성화하려면 Net.TcpipDefLROEnabled0으로 설정합니다.
  5. 확인을 클릭하여 변경 사항을 적용합니다.

VMkernel 어댑터에 대한 LRO 버퍼의 크기 변경

VMkernel 연결의 패킷 집계를 위한 버퍼 크기를 변경할 수 있습니다. TCP 확인 수를 줄이고 VMkernel의 효율성을 향상시키려면 버퍼 크기를 늘립니다.

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. Net.TcpipDefLROMaxLength 매개 변수에 1에서 65535 사이의 값을 입력하여 LRO 버퍼 크기를 바이트로 설정합니다.
    기본적으로 LRO 버퍼 크기는 32768바이트와 동일합니다.

Linux 가상 시스템의 VMXNET3 어댑터에서 LRO 관리

LRO가 호스트의 VMXNET3 어댑터에 대해 사용하도록 설정된 경우 게스트 운영 체제가 수신 패킷을 큰 버퍼로 집계하기 위해 리소스를 소모하지 않도록 Linux 가상 시스템에서 네트워크 어댑터에 대해 LRO 지원을 활성화합니다.

사전 요구 사항

Linux 커널이 2.6.24 이상인지 확인합니다.

프로시저

  • Linux 게스트 운영 체제의 터미널 창에서 -Klro 옵션과 함께 ethtool 명령을 실행합니다.
    • LRO를 활성화하려면 다음 명령을 실행합니다.
      ethtool -K ethY lro on

      여기서 ethYY는 가상 시스템의 NIC 시퀀스 번호입니다.

    • LRO를 비활성화하려면 다음 명령을 실행합니다.
      ethtool -K ethY lro off

      여기서 ethYY는 가상 시스템의 NIC 시퀀스 번호입니다.

Windows 가상 시스템의 VMXNET3 어댑터에서 LRO 관리

LRO가 호스트의 VMXNET3 어댑터에 대해 사용하도록 설정된 경우 게스트 운영 체제가 수신 패킷을 큰 버퍼로 집계하기 위해 리소스를 소모하지 않도록 Windows 가상 시스템에서 네트워크 어댑터에 대해 LRO 지원을 활성화합니다.

Windows에서 LRO 기술은 RSC(Receive Side Coalescing)로도 참조됩니다.

사전 요구 사항

  • 가상 시스템이 Windows Server 2012 이상 또는 Windows 8 이상을 실행하는지 확인합니다.
  • 가상 시스템이 ESXi 6.0 이상과 호환되는지 확인합니다.
  • 게스트 운영 체제에 설치된 VMXNET3 드라이버의 버전이 1.6.6.0 이상인지 확인합니다.
  • LRO가 Windows Server 2012 이상 또는 Windows 8 이상을 실행하는 가상 시스템에서 전체적으로 사용하도록 설정되어 있는지 확인합니다. Windows 가상 시스템에서 전체적으로 LRO 관리의 내용을 참조하십시오.

프로시저

  1. 게스트 운영 체제의 제어판의 네트워크 및 공유 센터에서 네트워크 어댑터의 이름을 클릭합니다.
    대화상자에 어댑터의 상태가 표시됩니다.
  2. 속성을 클릭하고 VMXNET3 네트워크 어댑터 유형에서 구성을 클릭합니다.
  3. 고급 탭에서 Recv Segment Coalescing(IPv4)Recv Segment Coalescing(IPv6)사용 또는 사용 안 함으로 설정합니다.
  4. 확인을 클릭합니다.

Windows 가상 시스템에서 전체적으로 LRO 관리

Windows 8 이상 또는 Windows Server 2012 이상을 실행하는 가상 시스템의 VMXNET3 어댑터에서 LRO(대규모 수신 오프로드)를 사용하려면 게스트 운영 체제에서 전체적으로 LRO를 사용하도록 설정해야 합니다. Windows에서 LRO 기술은 RSC(Receive Side Coalescing)로도 참조됩니다.

프로시저

  1. LRO가 Windows 8 이상 또는 Windows Server 2012 게스트 OS에서 전체적으로 비활성화되었는지 확인하려면 명령 프롬프트에서 netsh int tcp show global 명령을 실행합니다.
    netsh int tcp show global

    이 명령은 Windows 8.x OS에서 설정된 글로벌 TCP(Transmission Control Protocol) 매개 변수의 상태를 표시합니다.

    TCP 글로벌 매개 변수 ---------------------------------------------- 수신 측 크기 조정 상태 : 사용 Chimney 오프로드 상태 : 사용 안 함 NetDMA 상태 : 사용 안 함 DCA(Direct Cache Access) : 사용 안 함 수신 창 자동 조절 수준 : 보통 추가 기능 정체 제어 제공자 : 없음 ECN 기능 : 사용 안 함 RFC 1323 타임스탬프 : 사용 안 함 초기 RTO : 3000 세그먼트 병합 상태 수신 : 사용 안 함 

    LRO가 Windows 8 이상 또는 Windows Server 2012 시스템에서 전체적으로 비활성화된 경우, 세그먼트 병합 상태 수신 속성이 사용 안 함으로 표시됩니다.

  2. LRO를 Windows OS에서 전체적으로 사용하려면 명령 프롬프트에서 netsh int tcp set global 명령을 실행합니다.
     netsh int tcp set global rsc=enabled

다음에 수행할 작업

Windows 8 이상 또는 Windows Server 2012 가상 시스템의 VMXNET3 어댑터에서 LRO를 사용하도록 설정합니다. Windows 가상 시스템의 VMXNET3 어댑터에서 LRO 관리의 내용을 참조하십시오.