kafka高吞吐原理

1 sendfile技术

sendfile 也就是我们所说的零copy,区别传统的read/writer send/rev方式,有原来的4次数据copy降低为3次。零copy值的是用户态和内核态的数据copy.
传统的方式数据copy方式
1.内核从硬盘把数据读到内核缓存
2.内核缓存到用户缓存
3.用户缓存到内核scoket缓存区
4.内核scoket缓存区到协议引擎
sendfile技术将用户态的copy去掉 直接由内核缓存区内核socket缓存区,如下
1.内核从硬盘把数据读到内核缓存
2.内核缓存到内核scoket缓存区
4.内核scoket缓存区到协议引擎
sendfile 1.减少了一次数据的copy 2. 减少了2次用户与内核之间的切换

2. 顺序存储 写缓存到一定条件后 刷新到硬盘上
3. 客户端数据压缩和合并请求批量发送 减少了网络传输的压力和io操作的次数
4.存储分区 每个分区又有很多segment组成,避免了对大文件的操作 提高了并行能力
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值