2.3. 인스턴스 구성을 위한 OVS 확인
vhostuserECDHE가 작동하도록 하려면 플레이버를 사용하여 전용 CPU 및 대규모 페이지를 사용하도록 OVS-DPDK 포트로 인스턴스를 구성합니다. 자세한 내용은 다음에서 3단계를 참조하십시오. 플레이버를 생성하고 OVS-DPDK의 인스턴스를 배포 합니다.
인스턴스 구성을 확인하려면 다음 단계를 완료합니다.
인스턴스에 고정 CPU가 있는지 확인합니다. 전용 CPU는
virsh로 식별할 수 있습니다.$ sudo virsh vcpupin 2인스턴스에 사용된 에뮬레이터 스레드가 해당 인스턴스에 할당된 동일한 vCPU에서 실행되지 않는지 확인합니다.
$ sudo virsh emulatorpin 2참고Red Hat OpenStack Platform 12부터는 플레이버에서 에뮬레이터 스레드를 실행할 위치를 선택할 수 있습니다. Red Hat OpenStack Platform 12를 사용하여 에뮬레이터 스레드 정책 구성을 참조하십시오.
이전 버전의 경우 인스턴스의 전원이 켜질 때 에뮬레이터 스레드 고정을 수동으로 수행해야 합니다. isolcpus를 사용하거나 최적의 에뮬레이터 스레드 고정을 사용하여 NFV와 함께 NFV에서 virsh emulatorpin을 사용하는 경우의 영향을 참조하십시오.
인스턴스가 대규모 페이지를 사용하고 있는지 확인합니다. 이는 최적의 성능을 위해 필요합니다.
$ sudo virsh numatune 1인스턴스의 수신 대기열이 폴링 모드 드라이버(PMD)에 의해 서비스되고 있는지 확인합니다.
포트 및 대기열은 PMD에서 동등하게 균형을 유지해야 합니다. 최적으로 네트워크 어댑터와 동일한 NUMA 노드의 CPU에 의해 포트가 서비스됩니다.
$ sudo ovs-appctl dpif-netdev/pmd-rxq-show pmd thread numa_id 0 core_id 2: isolated : false port: dpdk0 queue-id: 1 pmd usage: 0 % port: dpdk1 queue-id: 0 pmd usage: 0 % port: vhu94ccc316-ea queue-id: 0 pmd usage: 0 % pmd thread numa_id 1 core_id 3: isolated : false pmd thread numa_id 0 core_id 22: isolated : false port: dpdk0 queue-id: 0 pmd usage: 0 % port: dpdk1 queue-id: 1 pmd usage: 0 % port: vhu24e6c032-db queue-id: 0 pmd usage: 0 % pmd thread numa_id 1 core_id 23: isolated : falsePMD에 대한 통계를 표시합니다. 이를 통해 PMD에서 대기열의 균형이 얼마나 잘 맞는지 확인할 수 있습니다. 자세한 내용은 Open vSwitch 설명서의 PMD Threads 를 참조하십시오.
참고pmd-rxq-rebalance옵션이 OVS 2.9.0에 추가되었습니다. 이 명령은 최신 rxq 처리 주기 정보를 기반으로 PMD 간에 균형을 유지하기 위해 새 PMD 큐 할당을 수행합니다.pmd-stats-show명령은 PMD가 실행 중이거나 통계가 마지막으로 삭제된 이후의 전체 기록을 표시합니다. 정리되지 않은 경우 포트가 설정되기 전에 통계에 통합되고 데이터가 전달되었습니다. 데이터 경로의 로드를 확인하는 데 사용되는 경우(일반적으로)는 쓸모가 없을 것입니다.시스템을 안정적인 상태로 만들고 통계를 지우고 몇 초 동안 기다린 다음 통계를 표시하는 것이 가장 좋습니다. 이는 데이터 경로에 대한 정확한 설명을 제공합니다.
다음 명령을 사용하여 PMD에 대한 통계를 표시합니다.
$ sudo ovs-appctl dpif-netdev/pmd-stats-show pmd thread numa_id 0 core_id 2: packets received: 492207 packet recirculations: 0 avg. datapath passes per packet: 1.00 emc hits: 419949 megaflow hits: 2485 avg. subtable lookups per megaflow hit: 1.33 miss with success upcall: 69773 miss with failed upcall: 0 avg. packets per output batch: 1.00 idle cycles: 1867450752126715 (100.00%) processing cycles: 5274066849 (0.00%) avg cycles per packet: 3794046054.19 (1867456026193564/492207) avg processing cycles per packet: 10715.14 (5274066849/492207) pmd thread numa_id 1 core_id 3: packets received: 0 packet recirculations: 0 avg. datapath passes per packet: 0.00 emc hits: 0 megaflow hits: 0 avg. subtable lookups per megaflow hit: 0.00 miss with success upcall: 0 miss with failed upcall: 0 avg. packets per output batch: 0.00 pmd thread numa_id 0 core_id 22: packets received: 493258 packet recirculations: 0 avg. datapath passes per packet: 1.00 emc hits: 419755 megaflow hits: 3223 avg. subtable lookups per megaflow hit: 1.49 miss with success upcall: 70279 miss with failed upcall: 1 avg. packets per output batch: 1.00 idle cycles: 1867449561100794 (100.00%) processing cycles: 6465180459 (0.00%) avg cycles per packet: 3785961963.68 (1867456026281253/493258) avg processing cycles per packet: 13107.10 (6465180459/493258) pmd thread numa_id 1 core_id 23: packets received: 0 packet recirculations: 0 avg. datapath passes per packet: 0.00 emc hits: 0 megaflow hits: 0 avg. subtable lookups per megaflow hit: 0.00 miss with success upcall: 0 miss with failed upcall: 0 avg. packets per output batch: 0.00 main thread: packets received: 16 packet recirculations: 0 avg. datapath passes per packet: 1.00 emc hits: 1 megaflow hits: 9 avg. subtable lookups per megaflow hit: 1.00 miss with success upcall: 6 miss with failed upcall: 0 avg. packets per output batch: 1.00PMD 통계를 재설정합니다.
pmd-stats-show명령은 마지막pmd-stats-clear명령 이후 PMD 통계를 표시합니다. 이전pmd-stats-clear가 발행된 경우 PMD가 실행을 시작한 이후의 데이터가 포함됩니다.로드 중인 시스템을 검사하는 경우 PMD 통계를 지우고 이를 표시하는 것이 유용합니다. 그렇지 않으면 트래픽 흐름 전에 시스템이 로드되지 않은 이전 시점의 데이터를 통계에 포함할 수도 있습니다.
다음 명령을 사용하여 PMD 통계를 재설정합니다.
$ sudo ovs-appctl dpif-netdev/pmd-stats-clear