9.4. RX/TX 큐 크기 구성

다음과 같은 여러 가지 이유로 초당 3,300만 개 이상의 패킷 속도로 패킷 손실이 발생할 수 있습니다.

  • 네트워크 인터럽트
  • a SMI
  • 가상 네트워크 기능의 패킷 처리 대기 시간

패킷 손실을 방지하려면 대기열 크기를 기본값 512에서 최대 1024로 늘립니다.

사전 요구 사항

  • RX를 구성하려면 libvirt v2.3 및 QEMU v2.7이 있는지 확인합니다.
  • TX를 구성하려면 libvirt v3.7 및 QEMU v2.10이 있는지 확인합니다.

절차

  • RX 및 TX 큐 크기를 늘리려면 관련 director 역할의 parameter_defaults: 섹션에 다음 행을 포함합니다. 다음은 ComputeOvsDpdk 역할의 예입니다.

    parameter_defaults:
      ComputeOvsDpdkParameters:
        -NovaLibvirtRxQueueSize: 1024
        -NovaLibvirtTxQueueSize: 1024

테스트

  • nova.conf 파일에서 RX 큐 크기 및 TX 큐 크기에 대한 값을 확인할 수 있습니다.

    [libvirt]
    rx_queue_size=1024
    tx_queue_size=1024
  • 계산 호스트에서 libvirt에서 생성한 VM 인스턴스 XML 파일에서 RX 큐 크기 및 TX 큐 크기의 값을 확인할 수 있습니다.

    <devices>
       <interface type='vhostuser'>
         <mac address='56:48:4f:4d:5e:6f'/>
         <source type='unix' path='/tmp/vhost-user1' mode='server'/>
         <model type='virtio'/>
         <driver name='vhost' rx_queue_size='1024'   tx_queue_size='1024' />
         <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
       </interface>
    </devices>

    RX 큐 크기 및 TX 큐 크기의 값을 확인하려면 KVM 호스트에서 다음 명령을 사용합니다.

    $ virsh dumpxml <vm name> | grep queue_size
  • 0 프레임 손실 시 3.8 mpps/core와 같은 향상된 성능을 확인할 수 있습니다.