10.12. OVS-DPDK 구성 문제 해결
이 섹션에서는 OVS-DPDK 구성의 문제를 해결하는 단계를 설명합니다.
브리지 구성을 검토하고 브리지에
datapath_type=netdev
가 있는지 확인합니다.# ovs-vsctl list bridge br0 _uuid : bdce0825-e263-4d15-b256-f01222df96f3 auto_attach : [] controller : [] datapath_id : "00002608cebd154d" datapath_type : netdev datapath_version : "<built-in>" external_ids : {} fail_mode : [] flood_vlans : [] flow_tables : {} ipfix : [] mcast_snooping_enable: false mirrors : [] name : "br0" netflow : [] other_config : {} ports : [52725b91-de7f-41e7-bb49-3b7e50354138] protocols : [] rstp_enable : false rstp_status : {} sflow : [] status : {} stp_enable : false
선택적으로 컨테이너가 시작되지 않는 경우와 같이 오류 로그를 볼 수 있습니다.
# less /var/log/containers/neutron/openvswitch-agent.log
ovs-dpdk
의 Poll Mode 드라이버 CPU 마스크가 CPU에 고정되어 있는지 확인합니다. 하이퍼 스레딩의 경우 형제 CPU를 사용합니다.예를 들어
CPU4
의 형제를 확인하려면 다음 명령을 실행합니다.# cat /sys/devices/system/cpu/cpu4/topology/thread_siblings_list 4,20
CPU4
의 형제는CPU20
이므로 다음 명령을 진행합니다.# ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x100010
상태를 표시합니다.
# tuna -t ovs-vswitchd -CP thread ctxt_switches pid SCHED_ rtpri affinity voluntary nonvoluntary cmd 3161 OTHER 0 6 765023 614 ovs-vswitchd 3219 OTHER 0 6 1 0 handler24 3220 OTHER 0 6 1 0 handler21 3221 OTHER 0 6 1 0 handler22 3222 OTHER 0 6 1 0 handler23 3223 OTHER 0 6 1 0 handler25 3224 OTHER 0 6 1 0 handler26 3225 OTHER 0 6 1 0 handler27 3226 OTHER 0 6 1 0 handler28 3227 OTHER 0 6 2 0 handler31 3228 OTHER 0 6 2 4 handler30 3229 OTHER 0 6 2 5 handler32 3230 OTHER 0 6 953538 431 revalidator29 3231 OTHER 0 6 1424258 976 revalidator33 3232 OTHER 0 6 1424693 836 revalidator34 3233 OTHER 0 6 951678 503 revalidator36 3234 OTHER 0 6 1425128 498 revalidator35 *3235 OTHER 0 4 151123 51 pmd37* *3236 OTHER 0 20 298967 48 pmd38* 3164 OTHER 0 6 47575 0 dpdk_watchdog3 3165 OTHER 0 6 237634 0 vhost_thread1 3166 OTHER 0 6 3665 0 urcu2