我们的活动在互联网上每天都会形成海量的数据。我们晓得这是一个“很大”的数字,但你晓得究竟有多大吗?
据简略计算linux 安装网卡驱动,目前互联网上每晚新增的数据量超过1.15EB。而预测到2025年,这一数字会下降到491EB。假如看不下来这个数字有多大,这么看下这个单位换算公式:1EB=1*1024*1024*1024GB。
由于物联网也在超快地发展,无处不在的IoT设备会形成更多的数据linux开发培训,所以互联网数据会呈指数级下降。这么无论是云估算、大数据剖析应用,还是AI处理,网路传输能够及时“吞”下激增的数据,就决定了服务的能力。
但目前承载互联网服务的主流操作系统Linux却存在网路性能困局,问题出在那里呢?
Linux网路的困局
当Linux在20世纪90年代初设计开发Linux内核时,还未能意料到未来30年全球互联网的规模,所以也不可能按现今的数据流量去做设计。而Linux内核的基本结构也保持到现今。
为此问题就在于Linux内核网路合同栈的实现,相对于当下的数据吞吐量需求,有以下三个诱因会形成网路传输困局:
▮应用程序和网路合同栈在交换数据时,会频繁地在用户态与内核态之间切换,致使延时形成;
▮数据要在用户空间缓存与内核空间缓存之间往来复制,花费时间;
▮内核合同栈须要对数据进行封装和解析工作,占用CPU时钟。
办法总比困难多,《Linux高性能网路解读:从DPDK、RDMA到XDP》一书就针对上述问题给出了包括软件与硬件的解决办法。本书的作者是业内资深专家,他在书中以理论结合实践,说明了DPDK、RDMA、XDP实现Linux高性能网路以及保障传输安全的方案。
DPDK:低成本的高性能网路技术
DPDK(DataPlaneDevelopmentKit,数据平面开发工具包)是在用户态运行的一组软件库和驱动程序。它的一大优点是可以在所有主要CPU体系上加速网路数据包的处理,这样一来,现有硬件无须升级linux 安装网卡驱动,只要在内核改装相应驱动就可以提高网路性能,是一种低成本的实现方案。
DPDK技术原理是绕开Linux内核合同栈直接访问网卡硬件,进而提升网路数据包的处理速率和吞吐量。DPDK将网卡的数据包直接映射到用户空间,之后使用高效的数据包处理库进行数据包的处理和转发,最后再将数据包发送回网卡。
在数据中心、云估算、虚拟化、网络安全等应用场景中,DPDK可以提升网路应用的性能和吞吐量、降低网路延后、提高网路应用的响应速率和稳定性,还可以支持多种网路合同和数据包格式,具有挺好的灵活性和可扩充性。
DPDK为处理数据包实现了一个“运行到完成”(runtocompletion)的模型,在执行数据平面处理逻辑之前硬盘安装linux,必须先分配所有资源,之后以逻辑核上执行单元(线程)的方式运行。该模型不支持调度器,以寻址的形式访问所有设备。
DPDK的核心是一组库,右图是核心组件以及它们之间的依赖关系。
DPDK核心组件
《Linux高性能网路解读:从DPDK、RDMA到XDP》详细说明了DPDK的显存管理与优化、DPDK的编译与运行方式,介绍了测试和剖析高性能网卡的工具与技巧,是手把手式的贴心教程。这对于述说内核驱动开发来说,是相当友好的学习体验。
私信小编,发送“资料包”,发放网路工程师入门大礼包