VPP学习(六)在多线程中使用VPP

1.VPP模式

VPP有两种不同的工作模式:

单线程

多线程

2.单线程

在单线程模式中,主线程同时进行数据包处理和其他管理功能命令行接口(CLI)、API、stats)。这是默认设置,不需要特殊再去配置。

3.多线程

在多线程模式下,主线程处理管理功能(调试CLI、API、stats采集)。一个或多个工作线程处理数据包的从输入到输出。

3.1多线程配置

手动配置

主线程配置在核1,工作线程配置在2,3,4,5,6

cpu {
  main-core 1
  corelist-workers 2-6
}

自动配置

主线程配置在核1,工作线程配置在2,3,4,5,6,7

cpu {
  skip-cores 1
  workers 6
}

4.缓冲内存分配

VPP平台是支持NUMA的。它可以为不同CPU套接字(NUMA节点)上的缓冲区分配内存。在启动配置中,通过使用socket-mem语句,可以为每个CPU套接字定义分配的内存数量,这部分配置在dpdk中。

dpdk {
  socket-mem 1024,1024
}

上面的配置在NUMA0上分配1GB内存,在NUMA1上分配1GB内存。每个工作线程使用自己本地的缓冲区。缓冲内存是从hugepages分配的。如果可用的话,VPP更推荐1G页面。如果不是,将使用2MB的页面。VPP会自动安装/卸载hugepages文件系统,因此不需要手动执行。只有在需要更大数量的mbufs时才需要socket-mem

注意:如果你正在运行最新的VPP版本,则不需要手动指定socket-mem。VPP将发现所有NUMA节点,默认情况下为每个节点分配512M。只有在需要更大数量的mbufs时才需要socket-mem。

参考资料:https://wiki.fd.io/view/VPP/Using_VPP_In_A_Multi-thread_Model

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值