免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6816 | 回复: 20
打印 上一主题 下一主题

[网络子系统] 有研究过 TCP splice 功能的吗 [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-24 11:03 |只看该作者 |倒序浏览
Linux 内核自 2.6.27 以后,完善了 TCP Splice 的功能。该功能可以在两个文件描述符之间高效的 copy 数据,实现所谓的 zero-copy。

对于网络代理程序,使用 splice,避免了一次内核态到用户态的 copy,即 client 到 proxy 段,还有一次用户态到内核态的 copy,即 proxy 到 server 端。

理论上讲,splice 应该会对网络代理程序性能的提升有明显的效果。不知哪位做过一些性能测试。

论坛徽章:
0
2 [报告]
发表于 2012-09-24 11:56 |只看该作者
没用过,MARK之。

论坛徽章:
0
3 [报告]
发表于 2012-09-24 12:14 |只看该作者
如果我没记错的话 sendfile内部就是splice实现,我了解的lighttpd、nginx都是大力推行sendfile,所以性能上的提升肯定是有的,但具体多少不知,未测试过。

论坛徽章:
0
4 [报告]
发表于 2012-09-24 12:16 |只看该作者
“ sendfile内部就是splice实现” 至少在比较新的内核应该是这样。 Linux2.6.23以后?

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
5 [报告]
发表于 2012-09-24 12:16 |只看该作者
回复 1# Godbach
未测试过!
期待测试数据

   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2012-09-24 12:20 |只看该作者
回复 5# 瀚海书香
晕啊,都没测试。

我用 haproxy 做了简单的测试,发现没什么效果。


   

论坛徽章:
0
7 [报告]
发表于 2012-09-24 12:31 |只看该作者
你怎么测试的?这个需要构造对应的使用场景吧?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
8 [报告]
发表于 2012-09-24 13:29 |只看该作者
回复 7# lenky0401

用测试仪模拟 client 和 server,中间是一台 l7 proxy 的设备。

   

论坛徽章:
0
9 [报告]
发表于 2012-09-25 09:56 |只看该作者
haproxy本身就是用 sendfile的吧,以前看过代码,好像有印象。你把他的发送那些函数给注释掉了测试的?
按照理论来说,怎么cpu利用率都低点的吧。

以前好像哪里看过 sendfile 只能从文件复制到 socket,不能从socket 复制到socket的,现在也支持后者啦?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
10 [报告]
发表于 2012-09-25 10:16 |只看该作者
回复 9# hmsghnh

haproxy 用的是 splice。 splice 可以实现从 sokcet 到 socket,不过中间要借助一次 pipe

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP