#show dpdk buffer
(查看dpdk的mbuf 的使用情况。长期观察可以看到dpdk的mbuf是否在泄露)
yazhou# show dpdk buffer
name="dpdk_mbuf_pool_socket0" available = 7597 allocated = 8785 total = 16382
#show memory
(查看vpp的内存占用情况。包括每个线程的使用情况)
yazhou# show memory
Thread 0 vpp_main
virtual memory start 0x7fb788e6b000, size 1048640k, 262160 pages, page size 4k
numa 0: 6142 pages, 24568k
not mapped: 256018 pages, 1024072k
total: 1.00G, used: 25.53M, free: 998.53M, trimmable: 994.48M
no traced allocations
Thread 1 vpp_wk_0
virtual memory start 0x7fb788e6b000, size 1048640k, 262160 pages, page size 4k
numa 0: 6142 pages, 24568k
not mapped: 256018 pages, 1024072k
total: 1.00G, used: 25.53M, free: 998.53M, trimmable: 994.48M
no traced allocations
Thread 2 vpp_wk_1
virtual memory start 0x7fb788e6b000, size 1048640k, 262160 pages, page size 4k
numa 0: 6142 pages, 24568k
not mapped: 256018 pages, 1024072k
total: 1.00G, used: 25.53M, free: 998.53M, trimmable: 994.48M
no traced allocations
#show runtime
(看到每个node节点的收发包情况, 也可以定位多线程的收发包个数,放一个报文流,就可以看到报文到底走到哪个线程去了)
yazhou# show runtime
---------------
Thread 1 vpp_wk_0 (lcore 0)
Time 55750.9, average vectors/node 1.00, last 128 main loops 0.00 per node 0.00
vector rates in 7.5387e4, out 7.5387e4, drop 7.5387e4, punt 0.0000e0
Name State Calls Vector

本文总结了VPP环境下多线程内存定位的几个关键命令:使用#show dpdk buffer监控DPDK mbuf内存状态,预防内存泄露;通过#show memory了解VPP各线程内存占用详情;利用#show runtime分析节点收发包状况,定位多线程处理;借助#show hardware-interface查看接口队列和RSS设置;以及使用#show interface rx-placement查看线程与接口的分配情况,辅助问题排查。


被折叠的 条评论
为什么被折叠?



