java线程怎样绑定cpu_DPDK深度解析:DPDK绑定线程到指定的CPU

本文探讨了DPDK如何解决因CPU调度线程导致的性能影响,详细解释了DPDK运行在用户态并绑定线程到特定核心以避免内核调度带来的性能损失。在初始化阶段,EAL将线程绑定到指定的CPU核心,主线程和从线程的绑定过程也进行了说明。
摘要由CSDN通过智能技术生成

问题

91cfa93183b1e31de06f1ce27d28874c.png

DPDK是解决报文快速转发的组件(库)

CPU调度线程,是影响报文快速转发的一个原因。

操作系统会调度线程,也就是在CPU间调度调度需要执行的线程。

这样会有以下几点影响性能:

1、 调度本身,需要内核进行线程上下文的切换,切换过程消耗性能

2、 线程变调度不再RUNNING状态,线程不再执行,影响性能

3、 线程被切换,指令的流水线被打断,即使恢复RUNNING,需要重新执行

4、 线程被切换,cache的数据不再有效,影响性能

DPDK的解决方案

DPDK运行在用户态。

DPDK将用户态线程绑定到特定的core上,不再被操作系统调度。

DPDK为每个线程分配一定数量的专有cache,线程独享。

DPDK如何绑定到core

EAL在初始化的时候,将线程分别绑定到特定的core上。

DPDK入参会设置core的个数,比如

“-c 7”,代表三个core,十进制7,二进制是0b111,默认是指core0、core1、core2。

EAL在启动时候,会把线程分为主线程和从线程。EAL初始化分别将线程绑定到core上

主线程绑定在函数eal_th

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值