| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> kafka 0 拷贝 -> 正文阅读 |
|
[大数据]kafka 0 拷贝 |
1. page cache 技术 与 文件映射机制 CPU、RAM、磁盘的访问速度:1ns、10ns、10ms。在CPU与RAM之间使用CPU cache以提高访存速度,在RAM与磁盘之间,操作系统使用page cache提高系统对文件的访问速度。 详见: https://blog.csdn.net/pizi0475/article/details/49493841 2. 传统IO流程与0拷贝 2.1 传统的IO流程是: ? ? 1. 操作系统从磁盘读取数据到内核空间的pagecache 2.2 kafka 0拷贝: 传统的文件访问通过有四个副本和两个系统调用,比较低效。kafka通过pagecache 和 sendfile技术允许操作系统将数据从页面缓存直接发送到网络,可以避免这种重新复制。所以在这个优化的路径中,只需要到 NIC 缓冲区的最终副本。 我们期望一个常见的用例是一个主题的多个消费者。使用上面的零复制优化,数据被复制到页面缓存中一次,并在每次消费时重用,而不是每次读取时都存储在内存中并复制到用户空间。这允许以接近网络连接限制的速率消耗消息。 pagecache 和 sendfile 的这种组合意味着在消费者主要被赶上的 Kafka 集群上,您将看不到磁盘上的任何读取活动,因为它们将完全从缓存中提供数据。 详见: https://blog.csdn.net/ljheee/article/details/99652448 kafka官网 第四章:http://kafka.apache.org/documentation.html#persistence 3 kafka为啥快 ? 1. 磁盘速度低的问题:顺序读写,从内核读写 ? 2. 0复制:利用page caches 和 sendfile 和 文件映射 避免不需要的数据复制 ? 3. 网络带宽:可以压缩 ? 4. small IO问题:消息集? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 5:37:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |