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와 같은 향상된 성능을 확인할 수 있습니다.