原文链接:绝对干货!初学者也能看懂的DPDK解析
架构级优化:
1、优化IO:使用UIO + MPOOL+MBUF等内存“零操作”技术;
2、简化层次:精简协议处理流程,压缩处理路径;
3、就近原则:模块解耦化前提是数据局部化,本地化;
4、事件驱动+轮询互补:低CPU的事件驱动模型+高优先级的轮询提升IO吞吐能力;
5、MPOOL:中断同步操作,提升并发效率。
系统级优化:
1、减少页交换:按需加大页表;
2、编译级优化:提前常量化;
3、并发调度:向量编程(简化为批量调度)。
代码级优化:
1、汇编化:高频代码汇编化;
2、指令CACHE:Like条件,CPU变量、内存对齐。
上述每一个改动都涉及模块较大的架构调整,需要根据具备情况进行更精细的划分,找到当前最大的性能瓶颈,如区分当前模块在IO、CPU、内存、中断的占比情况,同时分析模块间耦合情况(通信频率、通信规模、通信方式)。
架构级优化属于模块的自身优化形为,适用于大数于OS调度模型,可移植性强,系统级优化和代码级优化与外设CPU及内存强相关,可移植性较弱。