VPP buffer不足
現(xiàn)象
VPP在轉(zhuǎn)發(fā)時,如果有莫名丟包。而且在命令行輸入vppctl show error的時候出現(xiàn)某個節(jié)點no available buffer字樣。或者在show interface的時候出現(xiàn)out of buffer等字樣。 說明可能是buffer不足導致的丟包。
調(diào)試
在命令行輸入vppctl show buffers看一下avail字段是否變?yōu)?了。如果是0的話那就是沒有可用的buffer了。如下所示,Avail字段就為0了
vpp# show buffers Pool Name Index NUMA Size Data Size Total Avail Cached Used default-numa-0 0 0 2496 2048 16800 0 0 16800 default-numa-1 1 1 2496 2048 16800 16800 0 0目前發(fā)現(xiàn)造成這個問題的原因可能有幾個,主要是調(diào)整啟動配置文件startup.conf,啟動dpdk項里面,num-rx-queues 4和num-tx-queues 4等字段會影響buffer占用,這個隊列的數(shù)值越大,占用的buffer越多。可以適當調(diào)小試一下。
也可以增大buffer的空間,我使用的VPP版本是19.04 release版本,可以在startup.conf中添加下面的內(nèi)容,數(shù)值可以自行調(diào)整。
由于VPP的版本更新比較快,但是資料更新很慢,所以很多資料上的參數(shù)都可能已經(jīng)不適用了,我這個也不保證不同版本可以適用。主要的思路就是查看自己版本對應的VPP源碼,找到src\vlib\buffer.c目錄,查看vlib_buffers_configurebuffer模塊的配置函數(shù),例如我這個版本代碼是下面,解析命令行時,有解析關(guān)鍵字buffers-per-numa所以就可以使用buffers-per-numa去嘗試添加到startup.conf文件中調(diào)試。
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT){if (unformat (input, "buffers-per-numa %u", &bm->buffers_per_numa));else if (unformat (input, "default data-size %u",&bm->default_data_size));elsereturn unformat_parse_error (input);}總結(jié)
以上是生活随笔為你收集整理的VPP buffer不足的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据埋点与数据需求文档
- 下一篇: linux ubuntu美化,[linu