傻大方


首页 > 人文 >

coding|原来 8 张图,就可以搞懂“零拷贝”了!( 三 )



按关键词阅读:


mmap()系统调用函数会直接把内核缓冲区里的数据「映射」到用户空间 , 这样 , 操作系统内核与用户空间就不需要再进行任何的数据拷贝操作 。
coding|原来 8 张图,就可以搞懂“零拷贝”了!
本文图片

具体过程如下:
应用进程调用了mmap()后 , DMA 会把磁盘的数据拷贝到内核的缓冲区里 。 接着 , 应用进程跟操作系统内核「共享」这个缓冲区;
应用进程再调用write() , 操作系统直接将内核缓冲区的数据拷贝到 socket 缓冲区中 , 这一切都发生在内核态 , 由 CPU 来搬运数据;
最后 , 把内核的 socket 缓冲区里的数据 , 拷贝到网卡的缓冲区里 , 这个过程是由 DMA 搬运的 。
我们可以得知 , 通过使用mmap()来代替read() ,可以减少一次数据拷贝的过程 。
但这还不是最理想的零拷贝 , 因为仍然需要通过 CPU 把内核缓冲区的数据拷贝到 socket 缓冲区里 , 而且仍然需要 4 次上下文切换 , 因为系统调用还是 2 次 。
sendfile
在 Linux 内核版本 2.1 中 , 提供了一个专门发送文件的系统调用函数sendfile() , 函数形式如下:
它的前两个参数分别是目的端和源端的文件描述符 , 后面两个参数是源端的偏移量和复制数据的长度 , 返回值是实际复制数据的长度 。
首先 , 它可以替代前面的read()和write()这两个系统调用 , 这样就可以减少一次系统调用 , 也就减少了 2 次上下文切换的开销 。
其次 , 该系统调用 , 可以直接把内核缓冲区里的数据拷贝到 socket 缓冲区里 , 不再拷贝到用户态 , 这样就只有 2 次上下文切换 , 和 3 次数据拷贝 。 如下图:
coding|原来 8 张图,就可以搞懂“零拷贝”了!
本文图片

但是这还不是真正的零拷贝技术 , 如果网卡支持 SG-DMA(The Scatter-Gather Direct Memory Access)技术(和普通的 DMA 有所不同) , 我们可以进一步减少通过 CPU 把内核缓冲区里的数据拷贝到 socket 缓冲区的过程 。
你可以在你的 Linux 系统通过下面这个命令 , 查看网卡是否支持 scatter-gather 特性:
于是 , 从 Linux 内核2.4版本开始起 , 对于支持网卡支持 SG-DMA 技术的情况下 , sendfile()系统调用的过程发生了点变化 , 具体过程如下:
第一步 , 通过 DMA 将磁盘上的数据拷贝到内核缓冲区里;
第二步 , 缓冲区描述符和数据长度传到 socket 缓冲区 , 这样网卡的 SG-DMA 控制器就可以直接将内核缓存中的数据拷贝到网卡的缓冲区里 , 此过程不需要将数据从操作系统内核缓冲区拷贝到 socket 缓冲区中 , 这样就减少了一次数据拷贝;
所以 , 这个过程之中 , 只进行了 2 次数据拷贝 , 如下图:
coding|原来 8 张图,就可以搞懂“零拷贝”了!
本文图片

这就是所谓的零拷贝(Zero-copy)技术 , 因为我们没有在内存层面去拷贝数据 , 也就是说全程没有通过 CPU 来搬运数据 , 所有的数据都是通过 DMA 来进行传输的 。
零拷贝技术的文件传输方式相比传统文件传输的方式 , 减少了 2 次上下文切换和数据拷贝次数 , 只需要 2 次上下文切换和数据拷贝次数 , 就可以完成文件的传输 , 而且 2 次的数据拷贝过程 , 都不需要通过 CPU , 2 次都是由 DMA 来搬运 。
所以 , 总体来看 , 零拷贝技术可以把文件传输的性能提高至少一倍以上 。
使用零拷贝技术的项目
事实上 , Kafka 这个开源项目 , 就利用了「零拷贝」技术 , 从而大幅提升了 I/O 的吞吐率 , 这也是 Kafka 在处理海量数据为什么这么快的原因之一 。


稿源:(CSDN)

【】网址:http://www.shadafang.com/c/hn10049531C2020.html

标题:coding|原来 8 张图,就可以搞懂“零拷贝”了!( 三 )


上一篇:荣耀v40|荣耀V40已经在路上,曲面屏+双扬声器,国行2599元有戏!

下一篇:苹果|苹果开始自寻“后路”,转移生产线到印度,郭台铭发言说明了一切


人文

格萨尔|《藏地奇兵》石渠开机 穿越藏地最后秘境热血探险

阅读(15)

由沃星影业、拉近影业、拉近沃星影业出品,成都影视硅谷集团、青岛东望影业联合出品的电影《藏地奇兵》于10月12日在四川石渠正式开机。该片由著名演员秦岚担任出品人兼艺术总监,张楚晗担任总制片人,张著麟、李希杰、温子迅执导,魏千翔、屈菁菁、邢瀚卿、吴...

人文

怪我碍你|十月再见,十一月你好,释然过往,砥砺向前

阅读(12)

逝去的时光中,总有一些东西会在心中成为永恒,那么,就铭记那些美好吧,心中有阳光,充满正能量,微笑着面对生活;也会有些事情成为遗憾,有些心愿没能实现,但也不要气馁,更不要抱怨,笑看过往,努力过好当下和明天,不胡思乱想,不执着于过去。愿所有的真...

人文

年薪制| 年薪制要来了吗?事业单位职工收入或将有大变化!

阅读(22)

近日,人社部组织实施人才服务专项行动,推进高校、科研院所薪酬制度改革。落实高层次人才工资分配激励政策,鼓励事业单位对高层次人才实行年薪制、协议工资制、项目工资等灵活多样的分配形式。鼓励事业单位对高层次人才实行年薪制、协议工资制、项目工资等灵...

人文

社会【观点】医改进程迟缓的原因及破解之策

阅读(20)

1供给侧改革进展迟缓大年夜实际来看,医疗供给侧改革在社会办医、医务人员自由执业、公立病院去行政化三个方面并没有太多本质性的进展,这也是我国医改未能有大年夜冲破的重要原因。1.1社会办医成长迟缓成长社会办医,不仅是实际须要,也是一种策略。在公立病...

人文

时尚探究社成都街拍:图集分享

阅读(43)

这个夏天阴阳色也太好看了吧~又个性,又显白的发色,就算搭配学院风也一点都不突兀。一看就是经常健身的小姐姐,这个身材曲线真的羡慕了~不要太美~...

人文

#quot#六旬男子足底黑痣会长大 检查发现是恶性肿瘤

阅读(10)

本年60 岁的陈师长教师比来有些忧?。本来,三年前他的左脚底足跟邻近长了一颗黄豆大年夜小、凸起的黑" 痣"。一年前开端,这颗" 痣" 有逐渐长大年夜之势,伴有些许压痛,于是陈师长教师按期到家邻近的修脚店把这颗" 痣" 磨平,...

人文

凤眼看房长沙|长三角多市出台调控政策 房企拿地热情不减

阅读(17)

回望过去一段时间,不仅是宁波,整个长三角已是房企必争之地。今年融资环境稍有宽松后,大小房企集体携金杀往长三角,土拍市场屡现高溢价,即便多地出手调控,仍有地王出现。楼市也在市场情绪助推下迅速反弹。“近年来三四线城市房产饱和、风险积聚,标杆企业...

人文

午间时刻《欢喜猎人》要播了吗?包贝尔贾玲再次合作,携手《欢喜密探》原班人马回归

阅读(35)

网剧《欢乐密探》就是一部不错的喜剧作品,而《欢乐猎人》是《欢乐密探》原班人马打造的第二部影视作品,所以有很多人都等着可以早点看到这部剧,然则在《欢乐猎人》拍了两年今后,一向没有播出,大年夜家也都等得异常焦急。不过,有传言说《欢乐猎人》这部电...

人文

Tina|卫衣 + 半裙,照着穿好看爆了 !

阅读(21)

卫衣+半裙的搭配,属实是显胖王者,它要是称第二,那也是太谦虚了。当你挑选的裙子也很宽松时,穿上它就是灾难本身,转过身去看背后,Tina都想落泪,这五五分的身材是真实存在的吗?明明是同款卫衣,却比旁边穿裤子的look,腿长短了好多!不过小可爱们不用害...