文章16 | 阅读 7180 | 点赞0
Kafka 的 producer 生产数据,要写入到 log 文件中,写的过程是一直追加到文件末端,
为顺序写。官网有数据表明,同样的磁盘,顺序写能到 600M/s,而随机写只有 100K/s。这
与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。
这个0拷贝到底什么意思呢?
假如你本地磁盘某个目录下有一个1.txt文件,要写到2.txt这个文件下,我们学过网络编程我们都知道,我们需要使用 IO流读取1.txt,然后写入2.txt。但是我们的代码是无法直接操作文件的,代码会调用操作系统将文件读到操作系统的kernel space的这块空间,然后读到用户空间,也就是你的代码,通过你的代码又写到操作系统的kernel space这块空间,有操作系统来完成文件的写入 ,我们都知道底层对文件的操作都是c语言来完成的,这种操作是不是比较慢的。
所以就有了0拷贝
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/ywl470812087/article/details/105374573
内容来源于网络,如有侵权,请联系作者删除!