北京做网站哪个好,企业为什么要审计,杭州网站网站建设,Wordpress1002无标题kafka部署在linux上有什么好处
网络传输效率
kafka部署在linux上#xff0c;可以用到linux的零拷贝提升网络传输效率#xff0c;提高kafka的吞吐量。利用零拷贝可以使数据不经过用户态直接通过网卡发送给接收方#xff0c;实现数据的高性能传输
kafka和零拷贝技术
kafka…kafka部署在linux上有什么好处
网络传输效率
kafka部署在linux上可以用到linux的零拷贝提升网络传输效率提高kafka的吞吐量。利用零拷贝可以使数据不经过用户态直接通过网卡发送给接收方实现数据的高性能传输
kafka和零拷贝技术
kafka应用了两个零拷贝技术sendfile和mmap
sendfile
kafka消息消费过程应用了sendfile可以查看https://www.jianshu.com/p/0af1b4f1e164这篇文章讲解了零拷贝对kafka网络传输效率的提升 kafka broker将数据发送到消费者需要在用户态和内核态之间切换并且数据需要在用户态和内核态之间拷贝多次才最终打到网卡传输给接收方。 linux的零拷贝技术节省了两次拷贝1.应用程序将数据从内核态的页缓存拷贝到应用空间的应用缓存。2.应用程序将数据从应用缓存拷贝到内核空间的Socket Buffer。
DMA技术DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作传输动作本身是由 DMA 控制器来实行和完成。因此通过DMA硬件则可以绕过CPU自己去直接访问系统主内存。很多硬件都支持DMA其中就包括网卡、声卡、磁盘驱动控制器等。
Java中的零拷贝是依靠java.nio.channels.FileChannel中的transferTo(long position, long count, WritableByteChannel target)方法来实现的。transferTo方法的底层实现是基于操作系统的sendfile这个system call来实现的
mmap
linux用户空间和内核空间
用户空间应用程序可以直接访问的内存区域用于存放应用的代码和数据应用程序直接运行在应用空间中。 内核空间存放内核代码和数据的内存区域只有内核可以直接访问内核运行在这个空间。 内核空间和用户空间通过虚拟内存机制进行隔离分配在不同的虚拟内存区域这保证了系统的稳定性。 应用程序通过系统接口进行访问内核空间才能向内核发出指令。内核可以一些机制来访问用户空间比如复制用户空间的数据。
参考这篇文章http://www.ruanyifeng.com/blog/2016/12/user_space_vs_kernel_space.html