kafka性能高的影响因素
1.使用操作系统的页缓存kafka的性能非常依赖于操作系统的页缓存,页缓存提供了比kafka进程内存更好的缓存方式。2.零拷贝(linux的sendfile函数,对应FileChannel.transferto函数)正常的从磁盘发送数据到网络要经过一下几个步骤:a.把数据从磁盘读取到内核的read buffer内存中b.把内核read buffer内存的数据读取到应用程序的用户内存uer buff
1.使用操作系统的页缓存
kafka的性能非常依赖于操作系统的页缓存,页缓存提供了比kafka进程内存更好的缓存方式。
2.零拷贝(linux的sendfile函数,对应FileChannel.transferto函数)
正常的从磁盘发送数据到网络要经过一下几个步骤:
a.把数据从磁盘读取到内核的read buffer内存中
b.把内核read buffer内存的数据读取到应用程序的用户内存uer buffer中
c.把用户user buffer内存中的数据写到socket buffer内核内存中
d.dma把socket buffer内存内存的数据写到网卡设备中
而使用了sendfile函数后流程变成了:
a.把数据从磁盘读取到内核的read buffer内存中
b.把read buffer的位置和长度标志成一个fd描述符对象,并把这个描述符放到socket buffer中
c.dma 把socket buffer中的fd指向的read buffer内存内容写到网卡设备中
整个过程少了两个步骤:从read buffer拷贝数据到应用程序内存以及从应用程序内存拷贝数据到socket buffer
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)