天天看点

DPDK的方法论0x00缘由0x01 专用负载下的针对性软件优化0x02追求可水平扩展的性能0x03向Cache索求极致的实现优化性能0x04理论分析结合实践推导

0x00缘由

       吃完午饭,闲来无聊阅读了《深入浅出DPDK》,看到以下章节顿时感觉自己在性能优化上是摸着石头过河。如果好好理解这 段话,会对目前工作做的事情有个好的指导。           DPDK采用了很多具体优化方法来达到高性能的提升,有一些是利用IA软件优化的最佳实践方法,还有一些是利用了IA的处理器特性。

0x01 专用负载下的针对性软件优化

       专用处理器通过硬件架构专用优化来达到高性能,DPDK则利用通用处理器,通过优化专用化底层软件来达到期望的高性能。这要求DPDK尽可能利用 一切平台(CPU,芯片,PCIe以及网卡)特性。并针对网络负载特点,做针对性的优化,以发掘通用平台在某一专用领域的最大能力。

0x02追求可水平扩展的性能

       利用多核并行计算技术,提高性能和水平扩展能力。对于产生的并发干扰,遵循临界区越薄越好,临界区碰撞越少越好的知道原则。 数据尽可能本地化和无锁化,追求吞吐率随核数增加而线性增长。

0x03向Cache索求极致的实现优化性能

     相比于系统优化和算法优化,实现优化往往较少被提及。实现优化对开发者的要求体现在需要对处理器的结构有所了解。DPDK可谓 集大量的实现优化之大成,而这些方法多数围绕着Cache进行,可以说能娴熟地驾驭好Cache,在追求极致的性能路上就已经成功了一 半。

0x04理论分析结合实践推导

     性能的天花板在哪,调优是否还有空间,是否值得花更多的功夫继续深入,这些问题有时很难直接找到答案。分析、推测、做原型、 再分析,通过这样的螺旋式上升,慢慢逼近最优解,往往是实践路上的导航灯。条件允许下,有依据的理论量化计算,可以更可靠地明确 优化目标。