VMkernel 네트워크 어댑터 및 가상 시스템에서 TSO(TCP 세분화 오프로드)를 사용하여 심각한 지연 요구 사항이 있는 워크로드의 네트워크 성능을 향상시키는 방법을 알아봅니다.

물리적 네트워크 어댑터, VMkernel 및 가상 시스템 네트워크 어댑터의 전송 경로에서 TSO를 사용하면 TCP/IP 네트워크 작업에 대한 CPU의 오버헤드가 줄어 ESXi 호스트의 성능이 향상됩니다. TSO를 사용하도록 설정할 경우 네트워크 어댑터가 CPU를 나누는 대신 크기가 큰 데이터 청크를 TCP 세그먼트로 나누기 때문에 VMkernel 및 게스트 운영 체제가 더 많은 CPU 주기를 사용하여 장치를 실행할 수 있습니다.

TSO가 제공하는 성능 향상 혜택을 누리려면 물리적 네트워크 어댑터, VMkernel 및 게스트 운영 체제를 포함하여 ESXi 호스트에서 데이터 경로를 따라 TSO를 사용하도록 설정합니다. 기본적으로 ESXi 호스트의 VMkernel, VMXNET 2 및 VMXNET 3 가상 시스템 어댑터에서 TSO가 사용되도록 설정되어 있습니다.

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

VMkernel에서 소프트웨어 TSO 관리

물리적 네트워크 어댑터에 TSO와 관련한 문제가 발생하는 경우 문제가 해결될 때까지 VMkernel에서 TSO의 소프트웨어 시뮬레이션을 일시적으로 사용하도록 설정할 수 있습니다.

프로시저

  • VMkernel에서 TSO의 소프트웨어 시뮬레이션을 활성화 또는 비활성화하려면 이러한 esxcli network nic software set 콘솔 명령을 실행합니다.
    • VMkernel에서 TSO의 소프트웨어 시뮬레이션을 활성화합니다.
      esxcli network nic software set --ipv4tso=1 -n vmnicX
      esxcli network nic software set --ipv6tso=1 -n vmnicX
    • VMkernel에서 TSO의 소프트웨어 시뮬레이션을 비활성화합니다.
      esxcli network nic software set --ipv4tso=0 -n vmnicX
      esxcli network nic software set --ipv6tso=0 -n vmnicX

    여기서 vmnicXX는 호스트의 NIC 포트 수를 나타냅니다.

    이 구성 변경 사항은 호스트 재부팅 후에도 유지됩니다.

TSO가 ESXi 호스트의 물리적 네트워크 어댑터에서 지원되는지 확인하는 방법

지연 시간에 민감한 워크로드를 실행하는 호스트에서 네트워킹 성능을 예상할 때 물리적 네트워크 어댑터가 TCP/IP 패킷 세분화를 오프로드하는지 검사합니다. 물리적 네트워크 어댑터가 TSO를 지원하는 경우 TSO가 기본적으로 사용하도록 설정됩니다.

프로시저

  • TSO가 호스트의 물리적 네트워크 어댑터에서 사용되도록 설정되어 있는지 확인하려면 다음 콘솔 명령을 실행합니다.
    esxcli network nic tso get

ESXi 호스트에서 TSO 관리

NIC가 큰 데이터 청크를 TCP 세그먼트로 나누도록 하려면 전송 경로에서 TSO(TCP 세분화 오프로드)를 활성화합니다. CPU가 TCP 세분화를 수행하도록 하려면 TSO를 비활성화합니다.

기본적으로 호스트는 물리적 어댑터가 지원하는 경우 하드웨어 TSO를 사용합니다.

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. IPv4에 대한 Net.UseHwTSO 매개 변수 및 IPv6에 대한Net.UseHwTSO6의 값을 편집합니다.
    • TSO를 활성화하려면 Net.UseHwTSONet.UseHwTSO61로 설정합니다.
    • TSO를 비활성화하려면 Net.UseHwTSONet.UseHwTSO60으로 설정합니다.
  5. 확인을 클릭하여 변경 사항을 적용합니다.
  6. 물리적 어댑터의 드라이버 모듈을 다시 로드하려면 호스트의 ESXi Shell에서 esxcli system module set 콘솔 명령을 실행합니다.
    1. 드라이버를 비활성화하려면 esxcli system module set 명령을 --enabled false 옵션과 함께 실행합니다.
      esxcli	system module set	--enabled false --module nic_driver_module
    2. 드라이버를 활성화하려면 esxcli system module set 명령을 --enabled true 옵션과 함께 실행합니다.
      esxcli	system module set	--enabled true --module nic_driver_module

결과

물리적 어댑터가 하드웨어 TSO를 지원하지 않는 경우 VMkernel은 게스트 운영 체제에서 오는 큰 TCP 패킷을 세분화하여 어댑터로 전송합니다.

ESXi 호스트에서 TSO가 사용되도록 설정되어 있는지 확인하는 방법

지연 시간에 민감한 워크로드를 실행하는 호스트에 대한 네트워킹 성능을 예측할 때 하드웨어 TSO가 VMkernel에서 사용하도록 설정되어 있는지 검토합니다. 기본적으로 하드웨어 TSO는 ESXi 호스트에서 사용하도록 설정되어 있습니다.

프로시저

  1. vSphere Client에서 호스트로 이동합니다.
  2. 구성 탭에서 시스템을 확장합니다.
  3. 고급 시스템 설정을 클릭합니다.
  4. Net.UseHwTSONet.UseHwTSO6 매개 변수의 값을 검토합니다.
    Net.UseHwTSO는 IPv4에 대한 TSO 상태를 표시하고 Net.UseHwTSO6은 IPv6에 대한 TSO 상태를 표시합니다. 속성이 1로 설정되어 있으면 TSO가 사용하도록 설정됩니다.

Linux 가상 시스템에서 TSO 관리

게스트 운영 체제에서 세분화가 필요한 TCP 패킷을 VMkernel에 리디렉션하도록 Linux 가상 시스템의 네트워크 어댑터에서 TSO 지원을 활성화합니다.

사전 요구 사항

  • ESXi가 Linux 게스트 운영 체제를 지원하는지 확인합니다.

    "VMware 호환성 가이드" 설명서를 참조하십시오.

  • Linux 가상 시스템의 네트워크 어댑터가 VMXNET2 또는 VMXNET3인지 확인합니다.

프로시저

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

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

Windows 가상 시스템에서 TSO 관리

기본적으로 TSO는 VMXNET2 및 VXMNET3 네트워크 어댑터의 Windows 가상 시스템에서 활성화됩니다. 성능상의 이유로 TSO를 비활성화하려고 할 수 있습니다.

사전 요구 사항

  • ESXi가 Windows 게스트 운영 체제를 지원하는지 확인합니다. "VMware 호환성 가이드" 설명서를 참조하십시오.
  • Windows 가상 시스템의 네트워크 어댑터가 VMXNET2 또는 VMXNET3인지 확인합니다.

프로시저

  1. Windows 제어판의 네트워크 및 공유 센터에서 네트워크 어댑터의 이름을 클릭합니다.
  2. 이름을 클릭합니다.
    대화상자에 어댑터의 상태가 표시됩니다.
  3. 속성을 클릭하고 네트워크 어댑터 유형에서 구성을 클릭합니다.
  4. 고급 탭에서 Large Send Offload V2(IPv4) Large Send Offload V2(IPv6) 속성을 사용 또는 사용 안 함으로 설정합니다.
  5. 확인을 클릭합니다.
  6. 가상 시스템을 다시 시작합니다.