DPDK是什么

DPDK 是一款在用户空间中运行的软件加速器,可绕过 Linux 内核并支持数据分组处理应用访问 NIC、CPU 和内存。

做作为一种内核旁路机制,DPDK允许虚拟交换机旁路内核并直接与兼容的网卡通信,使得分组处理方案更加简洁和高效。作为新一代数据平面解决方案,DPDK经历了多年的发展,推出多个版本。目前,DPDK开源项目代码行数达160万,社区投资约2 560万美元,能够支持英特尔Arch/ARM/Power8上的分组I/O加速。借助DPDK,可以将数据分组处理性能最多提高10倍。能够大幅提升数据面性能,让x86架构可以进入到更加强调性能和稳定性的传统网络市场,使运营商在部署NFV时更加得心应手,顺利解决遇到的瓶颈。

DPDK包含了多项组件,多方位提升了系统性能。

  • Memory Manager(内存管理器):负责内存对象池的分配。内存管理器使用大页面内存来创建内存池,同时也提供了数据对齐的支持来保障对内存通道的访问更加均匀。

  • Buffer Manager(缓存管理器):通过在内存池中预分配固定长度的缓存,显著的缩短了操作系统在分配和释放缓存所花的时间。

  • Queue Manager(队列管理器):提供安全的无锁队列,从而使得不同的软件组件在处理数据分组时可以避免一些不必要的等待。

  • Flow Classification(流分类):提供了高效的基于SSE扩展指令的散列函数,保障数据分组的快速分类处理,从而提高网络吞吐量。

  • Poll Mode Drivers(轮询模式驱动):针对千兆和万兆网卡的轮询模式驱动,不同于传统的异步中断处理机制,大大提高了数据分组处理性能。

DPDK的影响力

通信行业

通信行业正逐步迁移至虚拟化,以便在其网络环境中增强弹性、灵活性和标准化,随着时间的推移,这种趋势的发展已经变得更加多元化。 SDN、NFV、DPDK、Openflow 和 Open vSwitch 都得以使用。移动网的PGW网元和宽带网络的BRAS类转发设备,对转发性能有着非常高的要求。如果用x86架构的NFV服务器取代上述设备,由于Linux内核的限制和通用I/O报文读写方式,这种基于传统Linux和虚拟化技术的转发平面万兆端口普遍仅有1 Gbit/s以内的转发能力;而目前的电信级硬件转发设备可以轻松做到64 byte小报文不分组丢失线速转发。

下一代防火墙

持续优化网路安全需要不断改进防火墙的实施,这将受益于DPDK并不断发展。下一代防火墙也可以是 NFV 解决方案的一部分。用于简单数据分组过滤的基本防火墙已演进多年,可以执行更加高级的应用,比如入侵检测与防御 (IPS)、网络杀毒、IPsec、SSL 和应用控制等。这些功能均位于数据平台,要求对数据流进行深度数据包检查、具备加密和压缩功能,以及执行大量数据分组内容处理。下一代防火墙在设计时运用了采用DPDK的 Wind River 网络加速平台以及QuickAssist 。DPDK 提供了相应的机制,支持通过其他高性能方法来替代 Linux 系统调用,从而避免 Linux 内核出现的常见问题。Wind River 网络加速平台能够加速 Apache 服务器 等本机 Linux 应用,并为移植在网络加速引擎上的安全应用提供更高的加速性能。

大数据分析

关于涉及大数据分析的使用案例,Aspera公司与英特尔公司研究了超高速数据传输解决方案,该解决方案能够在裸机和虚拟化硬件平台上帮助商用互联网连接达到可预测的超高 WAN 传输速度,包括超过往返时间为数百毫秒的网络,以及常见远距离 WAN 几个百分点的数据分组丢失率。借助DPDK,软件工程师可减少收发数据分组所需的内存副本数量。Aspera公司因此成功地将测试系统上单个流数据的传输速度提高至 37.75 Gbit/s,加上以太网帧和 IP 数据分组标头,网络利用率达到了 39 Gbit/s。通过在基于内核的虚拟机 (KVM) 管理程序上进行测试,对虚拟化平台的传输性能开始了初步研究,并实现了 16.1 Gbit/s 的初始传输速度。

电网

作为全球最大的电力公司,中国国家电网公司承担着向大约 11 亿人口供电的坚决任务。 SGCC 依赖高性能计算集群确保电网的安全和平稳运行。伴随着中国电网规模的不断扩大,SGCC 急需增强其全数字实时仿真系统,以满足国家日益增长的电力供应需求。 DPDK 是其中一项关键组件,帮助将 ADPSS 的延迟降到 50μs之内。这也是为 3,000 台发电机和 30,000 根电网线路创建大型电力系统仿真的必要条件。

中文书名:DPDK应用指南

英文书名:DPDK Application Basis

作者:唐宏,柴卓原,任平,王勇,等 编著

出版社:人民邮电出版社

定价:49.00元

开本:185 mm×260 mm

ISBN:978-7-115-42604-8

内容提要

本书不仅深入浅出地介绍了DPDK的基础原理和安装调试方法,还详细介绍了DPDK在NFV中的应用场景和测试方法,并叙述了DPDK应用开发的技术细节和实践经验,是DPDK的入门必读,是了解NFV加速转发技术的绝佳指南。

作者简介

唐宏,中国电信股份有限公司广州研究院数据通信研究所所长,中国电子学会云计算专家委员会委员,中国SDN产业联盟需求场景与网络架构组组长,主要从事 IP多媒体网络的研发工作。

读者对象

互联网/电信业从事SDN/NFV设计/规划人员、从事网络编程的初中级工程师、NFV技术集成测试工程师。

目  录

第一部分 基础原理

第 1 章 背景概述

1.1 产业背景

1.2 DPDK 开源社区

第 2 章 DPDK 技术简介

2.1 软件架构

2.2 巨页技术

2.3 轮询技术

2.4 CPU 亲和技术

2.5 DPDK 性能影响因素

第 3 章 DPDK 库函数

3.1 EAL 库

3.2 Ring 库

3.3 Mempool 库

3.4 mbuf 库

3.5 PMD 驱动

3.6 IVSHMEM 库

3.7 Timer 库

3.8 LPM 库

3.9 Hash 库

3.10 多进程支持

...

↓↓↓ 点击"阅读原文" ,了解更多详情

DPDK:不仅是加速相关推荐

  1. DPDK加速FPGA支持,强强联手助力数据中心网络加速

    背景 DPDK在专注数据面报文处理的同时,一直紧跟网络发展的脉搏以开放的姿态融合不断涌现的各种新的网络设备.从最初的普通网卡,到集成虚拟化和交换功能的高级网卡,再到各种网络SoC(片上系统)设备,到现 ...

  2. OVS DPDK vs OVS Deep Dive(十六)

    背景 OvS(Open vSwitch)是云计算平台的重要连接组件,为虚拟机提供网络连,被各大云平台,基础设施供应商广泛使用,比如OpenStack, OpenNebula.vSwitch–Virtu ...

  3. SDN实战团技术分享(三十八):DPDK助力NFV与云计算

    DPDK最初动机很简单,网络处理器的软件解决方案,证明IA多核处理器能够支撑高性能数据包处理. 什么是DPDK?对于用户来说,它可能是一个出色的包数据处理性能加速软件库:对于开发者来说,它可能是一个实 ...

  4. DPDK盒子使用手册——DPDK入门zz

    https://www.sdnlab.com/20524.html 本章分为两节,第一节介绍数据平面开发套件DPDK(Data Plane Development Kit)的基础知识,第二节介绍DPD ...

  5. 深入浅出DPDK学习笔记——认识DPDK

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

  6. 京东容器集群建设之路

    从0诞生 2013年初,京东商城研发布局虚拟化技术方向.那时的我们从0起步.从几人小团队开始起航. 在物理机时代,应用上线等待分配物理机时间平均在一周.应用混部要看脸看颜值的,没有隔离的应用混部如履薄 ...

  7. 中国银联基于软件定义网络的下一代金融云研究探索

    一. 研究背景情况 (一) 问题和挑战 银联基于 OpenStack开源技术的金融云平台已运行 5年,目前已达数千台级物理服务器规模,银联互联网.移动支付等关键业务,特别是提供多样化支付服务的全渠道系 ...

  8. 解读《SDWAN生态技术报告》~ 企业侧

    解读<SDWAN生态技术报告>~ 企业侧 4.1 以企业边缘为核心的SD-WAN [ 所有场景都是以企业方式进行展开,下一章节的运营商SD-WAN可以理解为满足企业组网的一张 Overla ...

  9. 浅谈Kube-OVN

    Kube-OVN简介 Kube-OVN 是一款 CNCF 旗下的企业级云原生网络编排系统,将 SDN 的能力和云原生结合, 提供丰富的功能,极致的性能以及良好的可运维性. Kube-OVN可提供跨云网 ...

  10. DPDK加速I/O虚拟化

    相关文章:I/O虚拟化介绍 DPDK支持半虚拟化的前端virtio和后端vhost,并且对前后端都有性能加速的设计.而对于I/O透传,DPDK可以直接在客户机里使用,就像在宿主机里,直接接管物理设备, ...

最新文章

  1. [题解]洛谷P1119 灾后重建
  2. Spring 的 BeanFactory 和 FactoryBean 傻傻分不清?
  3. 保持用户处于登录状态,加速应用程序启动
  4. Javascript基础 对象与方法的识别
  5. 【论文阅读】JDA(joint distribution adaptation)/2013初稿
  6. 小程序页面启动过程分析
  7. 做运动(Dijkstra+并查集+MST)
  8. HDU 2196 Computer 树形DP
  9. (3)《Head First HTML与CSS》学习笔记---CSS入门
  10. • 服务注册与发现(Eureka、Consul)
  11. whey some page need header when your fetch that page and some don't need
  12. 概率论与数理统计思维导图
  13. ns3网络设置模块 PointToPoint
  14. windows-sys4:win10 预览体验计划不能选择版本渠道
  15. centos7安装python开发环境(python3,postgresql,sublime,supervisor)
  16. 删库跑路大全 删库跑路
  17. 专门记java语言单词app_赞Android背单词软件app源码(非常实用)
  18. 人工智能的应用无人驾驶技术
  19. 深度学习为图片人物换装【python代码教程】 1
  20. Mac系统下MySQLWorkbench出现no connection established问题

热门文章

  1. Linq 左连接 left join
  2. linux文件管理 - 系统目录结构
  3. 七月工作笔记 7.7 - 7.11
  4. 机器学习笔记——深度学习入门篇
  5. [翻译]创建ASP.NET WebApi RESTful 服务(9)
  6. sql 大数据量插入优化
  7. Duplicate entry...for key...
  8. 蛮力法在查找算法中的应用(JAVA)--顺序查找
  9. mulitpartfile怎么接收不到值_光端机电源正常,但是运行不了怎么办?
  10. 初中英语多词性单词怎么办_高考英语阅读理解生僻单词太多怎么办?十大招数帮到你...