跳至主要內容

第一部分 DPDK基础篇

LincZero大约 3 分钟

第一部分 DPDK基础篇

目录导航

重点介绍DPDK诞生的背景、基本概念、核心算法,并结合实例讲解各种基于IA平台的数据面优化技术,包括相关的网卡加速技术。希望可以帮助初次接触DPDK的读者全面了解DPDK,为后面的阅读打下基础。

DPDK基础篇共包括9章,其中前5章主要从软件优化的角度阐述如何利用DPDK来提升性能,包括cache优化、并行计算、同步互斥、转发算法等。后面4章则针对PCIe设备和高速网卡详细介绍如何优化网卡性能,提高网络带宽吞吐率。

  1. 第1章:技术演进历程,面临及需要解决的问题,以及如何从系统的角度看待DPDK的技术,最后结合几个编程实例帮助读者了解DPDK基本的编程模式。
  2. 第2章:则系统地介绍内存和cache的相关基本知识,分析了各种IA平台上的cache技术的特点和优势,并介绍了一个DPDK的重要技术“大页”的使用。
  3. 第3章和第4章:则围绕多核的使用,着重介绍如何使用多线程,最大限度地进行指令和数据的并行执行。为了解决多线程访问竞争的问题,还引入了几种常见的DPDK锁机制。
  4. 第5章:详细讲述了DPDK的数据报文转发模型,帮助读者了解DPDK的工作模式。
  5. 从第6章开始:本书内容逐步从CPU转移到网卡I/O。其中,第6章将会从CPU与PCIe总线架构的角度,带领读者领略CPU与网卡DMA协同工作的整个交互过程。
  6. 第7章:专注于网卡的性能优化,详细介绍了DPDK如何在软件设计、硬件平台选择和配置上实现高效的网络报文处理。
  7. 第8章:介绍了目前高速网卡中一个非常通用的技术“多队列与流分类”,解释了DPDK如果利用这个技术实现更高效的IO处理。
  8. 第9章:介绍了目前以网卡为主的硬件卸载与智能化发展趋势,帮助读者了解如何将DPDK与网卡的硬件卸载技术结合,减少CPU的开销,实现高协同化的软硬件设计。

第1章 认识DPDK

什么是DPDK:

  • 对于用户来说,它可能是一个性能出色的包数据处理加速软件库;
  • 对于开发者来说,它可能是一个实践包处理新想法的创新工场;
  • 对于性能调优者来说,它可能又是一个绝佳的成果分享平台。

与NFV的关系:

当下火热的网络功能虚拟化,则将DPDK放在一个重要的基石位置。虽然很难用短短几语就勾勒出DPDK的完整轮廓,但随着认识的深入,我们相信你一定能够认可它传播的那些最佳实践方法,从而将这些理念带到更广泛的多核数据包处理的生产实践中去。

动机与现状:

DPDK最初的动机很简单,就是证明IA多核处理器能够支撑高性能数据包处理。随着早期目标的达成和更多通用处理器体系的加入,DPDK逐渐成为通用多核处理器高性能数据包处理的业界标杆。