您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

零拷贝技术

时间:2022-06-28 09:46:49  来源:  作者:开猿节流
零拷贝技术

 

 

知识补充:

1、DMA是直接内存访问(Direct Memory Access 技术,早期 DMA 只存在在主板上,如今由于 I/O 设备越来越多,数据传输的需求也不尽相同,所以每个 I/O 设备里面都有自己的 DMA 控制器。

2、每次系统调用都得先从用户态切换到内核态,等内核完成任务后,再从内核态切换回用户态。

我们都听过 kafka 很快,其中一个原因是 kafka 使用零拷贝。看看从文件中读取数据并通过网络将数据传输到另一个程序的场景,在内部的复制操作,需要在用户模式和内核模式之间进行四次上下文切换,并且进行数据复制四次。

  1. 来自磁盘的数据被复制到内核读取缓冲区中。第一个拷贝由直接内存访问 (DMA) 引擎执行,该引擎从磁盘读取文件内容并将它们存储到内核地址空间缓冲区中。
  2. 从内核缓冲区复制到应用程序读取缓冲区(上下文切换,切换到用户模式)。
  3. 从应用程序缓冲区复制到内核套接字缓冲区并再次将数据放入内核地址空间缓冲区(切换到内核模式)。
  4. 从套接字缓冲区它将复制到网络缓冲区

完成所有四个操作后,它将再次切换到用户模式。

零拷贝技术

 

回顾以上动作,其实发现实际上第二个和第三个数据拷贝是可以避免的。JAVA 类库通过 java.nio.channels 中的 transferTo() 方法在 UNIX 系统上执行零副本,使用零拷贝的应用程序请求内核直接将数据从磁盘文件复制到套接字,而不通过应用程序。零拷贝极大提高了应用程序性能,并减少了内核和用户模式之间的上下文切换次数。

我们看看 transferTo() 是如何复制数据的?

  1. transferTo()方法致使文件内容被 DMA(直接内存访问)引擎复制到读取缓冲区中。
  2. 然后内核将数据复制到套接字关联的内核缓冲区中。
  3. 从套接字缓冲区它将复制到网络缓冲区

这里我们还需要 3 个副本和 2 个上下文切换。

零拷贝技术

 

但当前还没有达到零拷贝,如果底层网卡支持收集操作,可以进一步减少内核重复拷贝数据的操作。在 linux 内核 2.4 及更高版本中,套接字缓冲区描述符支持该场景。

  1. transferTo()方法使 DMA 引擎将文件内容复制到内核缓冲区中。
  2. 没有数据被复制到套接字缓冲区中,相反,只有有关数据位置和长度信息的描述符才会附加到套接字缓冲区。DMA 引擎将数据直接从内核缓冲区传递到网络缓冲区。
零拷贝技术

 


零拷贝技术

 

Kafka 和 Nginx 都有实现零拷贝技术,这将大大提高文件传输的性能。拷贝技术,本质上讲就是通过减少非必要的内存拷贝以及上下文切换,来提高文件在通道间复制速度的一种技术。以本文中的transferTo()方法为例,通过该技术,可以将原来四次内存间拷贝减少成两次,将四次上下文切换减少成两次,大大提高复制的速度。但零拷贝技术并非万能的,它有自己的使用场景,对于将大量数据从一个 I/O 通道复制到另一个通道的情况(例如 Web 服务器),都是合适的。



Tags:零拷贝   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
零拷贝并非万能解决方案:重新定义数据传输的效率极限
/ PageCache 有什么作用? /在我们前面讲解零拷贝的内容时,我们了解到一个重要的概念,即内核缓冲区。那么,你可能会好奇内核缓冲区到底是什么?这个专有名词就是 PageCache,也被称为...【详细内容】
2023-09-13  Search: 零拷贝  点击:(319)  评论:(0)  加入收藏
深入探究 Linux 中的零拷贝技术
零拷贝技术的发展在不同场景下有不同的适用方法。而在Linux操作系统中,现存的零拷贝技术也非常多,它们大部分存在于不同的Linux内核版本,而有些旧的技术已经被新技术所取代。本...【详细内容】
2023-09-04  Search: 零拷贝  点击:(241)  评论:(0)  加入收藏
搞明白什么是零拷贝,就是这么简单
我们总会在各种地方看到零拷贝,那零拷贝到底是个什么东西。接下来,让我们来理一理啊。拷贝说的是计算机里的 I/O 操作,也就是数据的读写操作。计算机可是一个复杂的家伙,包括软...【详细内容】
2023-08-26  Search: 零拷贝  点击:(272)  评论:(0)  加入收藏
零拷贝技术详解
当涉及到网络编程和IO操作时,数据拷贝是一个常见的性能瓶颈。传统的数据拷贝过程中,数据需要从内核缓冲区复制到用户空间缓冲区,然后再从用户空间缓冲区复制到内核缓冲区,这个过...【详细内容】
2023-06-21  Search: 零拷贝  点击:(360)  评论:(0)  加入收藏
一文读懂计算机内核态、用户态和零拷贝技术
存储介质的性能话不多说,先看一张图,下图左边是磁盘到内存的不同介质,右边形象地描述了每种介质的读写速率。一句话总结就是越靠近cpu,读写性能越快。了解了不同硬件介质的读写...【详细内容】
2022-12-02  Search: 零拷贝  点击:(370)  评论:(0)  加入收藏
虚拟内存 & I/O & 零拷贝
作者:mosun,腾讯 PCG 后台开发工程师一、虚拟内存 1.1 虚拟内存引入我们知道计算机由 CPU、存储器、输入/输出设备三大核心部分组成,如下:CPU 运行速度很快,在完全理想的状态下,存...【详细内容】
2022-10-13  Search: 零拷贝  点击:(306)  评论:(0)  加入收藏
如何深入理解零拷贝技术
零拷贝技术是一种思想,指的是计算机操作时,CPU不需要先将数据从某处内存复制从某处内存复制到另一个特定区域。可见,零拷贝的特点是 CPU 不全程负责内存中的数据写入其他组件,CP...【详细内容】
2022-09-14  Search: 零拷贝  点击:(385)  评论:(0)  加入收藏
零拷贝技术
知识补充:1、DMA是直接内存访问(Direct Memory Access) 技术,早期 DMA 只存在在主板上,如今由于 I/O 设备越来越多,数据传输的需求也不尽相同,所以每个 I/O 设备里面都有自己的 D...【详细内容】
2022-06-28  Search: 零拷贝  点击:(330)  评论:(0)  加入收藏
网络IO是如何一步一步走向零拷贝的
你们知道当程序需要读取或者写入数据的时候,CPU是如何操作我们的磁盘的吗?首先CPU肯定是要把读写数据的命令告诉给磁盘,这个命令可以通过IO总线传给磁盘,那这里有个细节,其实我们...【详细内容】
2022-04-12  Search: 零拷贝  点击:(276)  评论:(0)  加入收藏
一文让你彻底搞清楚,Linux零拷贝技术的那些事儿
1.前言像大白这种调包侠,深知不懂底层技术点就如同空中楼阁,再这样下去面阿里p10是没希望了。想到这里,我开始慌了,所以今天和大家一起学习个底层技术点-零拷贝Zero-Copy。Linux...【详细内容】
2022-02-25  Search: 零拷贝  点击:(353)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(6)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(7)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(11)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(4)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(6)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(10)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(21)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(20)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(22)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔·盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(42)  评论:(0)  加入收藏
站内最新
站内热门
站内头条