11.4. RX-TX 대기열 크기를 관리하여 패킷 손실 방지
다음과 같은 여러 가지 이유로 초당 3.5 만 개 이상의 패킷 손실 (mpps)에서 패킷 손실이 발생할 수 있습니다.
- 네트워크 인터럽트
- a SMI
- 가상 네트워크 기능의 패킷 처리 대기 시간
패킷 손실을 방지하려면 큐 크기를 기본값 512에서 최대 1024로 늘립니다.
사전 요구 사항
-
언더클라우드 호스트 및
stack
사용자의 인증 정보에 액세스합니다.
절차
-
언더클라우드 호스트에
stack
사용자로 로그인합니다. stackrc
언더클라우드 인증 정보 파일을 소싱합니다.$ source ~/stackrc
사용자 지정 환경 YAML 파일을 생성하고
parameter_defaults
아래에 다음 정의를 추가하여 RX 및 TX 큐 크기를 늘립니다.parameter_defaults: NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024
배포 명령을 실행하고 코어 heat 템플릿, 기타 환경 파일, RX 및 TX 큐 크기 변경 사항이 포함된 환경 파일을 포함합니다.
예제
$ openstack overcloud deploy --templates \ -e <other_environment_files> \ -e /home/stack/my_tx-rx_queue_sizes.yaml
검증
nova.conf
파일에서 RX 큐 크기 및 TX 대기열 크기의 값을 관찰합니다.$ egrep "^[rt]x_queue_size" /var/lib/config-data/puppet-generated/\ nova_libvirt/etc/nova/nova.conf
다음이 표시되어야 합니다.
rx_queue_size=1024 tx_queue_size=1024
Compute 호스트의 libvirt에서 생성된 VM 인스턴스 XML 파일에서 RX 큐 크기 및 TX 큐 크기의 값을 확인합니다.
- 새 인스턴스를 만듭니다.
컴퓨팅 호스트 및 인스턴스 이름을 가져옵니다.
$ openstack server show testvm-queue-sizes -c OS-EXT-SRV-ATTR:\ hypervisor_hostname -c OS-EXT-SRV-ATTR:instance_name
샘플 출력
출력은 다음과 유사합니다.
+-------------------------------------+------------------------------------+ | Field | Value | +-------------------------------------+------------------------------------+ | OS-EXT-SRV-ATTR:hypervisor_hostname | overcloud-novacompute-1.sales | | OS-EXT-SRV-ATTR:instance_name | instance-00000059 | +-------------------------------------+------------------------------------+
Compute 호스트에 로그인하고 인스턴스 정의를 덤프합니다.
예제
$ podman exec nova_libvirt virsh dumpxml instance-00000059
샘플 출력
출력은 다음과 유사합니다.
... <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> ...