DPDK学习开篇
1.前言 说来想学习DPDK已经是很久的事情了,奈何总是被所谓的紧急的事情耽误,故而决心学习一下,记录一下以便总结,知道DPDK已经是很久之前的事情了,记得曾经一次面试就被问到DPDK报文如何走的,也是被问的一脸懵逼甚是尴尬, 主要是工作中用到会比较多, 个人对DPDK的处理机制也是很感兴趣 2.DPDK介绍 3.DPDK 优势 1)轮询与中断 起初的纯轮询模式是指收发包完全不使用任何中断,集中所有运算资源用于报文处理。DPDK纯轮询模式是指收发包完全不使用中断处理的高吞吐率的方 式。DPDK所有的收发包有关的中断在物理端口初始化的时候都会关 闭,也就是说,CPU这边在任何时候都不会收到收包或者发包成功的中 断信号,也不需要任何收发包有关的中断处理。具体收发包流程参见之后的文章单独说明。网络应用中可能存在的潮汐效应,在某些时间段网络数据 流量可能很低,甚至完全没有需要处理的包,这样就会出现在高速端口 下低负荷运行的场景,而完全轮询的方式会让处理器一直全速运行,明 显浪费处理能力和不节能。因此在DPDK R2.1和R2.2陆续添加了收包中 断与轮询的混合模式的支持,类似NAPI的思路,用户可以根据实际应 用场景来选择完全轮询模式,或者混合中断轮询模式。而且,完全由用 户来制定中断和轮询的切换策略,比如什么时候开始进入中断休眠等待 收包,中断唤醒后轮询多长时间,等等。 2)多线程编程: