论坛首页 Java企业应用论坛

socket 优化传输效率!!高手进

浏览 25164 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-25  
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。
0 请登录后投票
   发表时间:2011-04-25  
kimmking 写道
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。


大量发这种小数据包,nagel算法的对响应的影响是非常大的,楼主自己测试的结果就可以看出来。
0 请登录后投票
   发表时间:2011-04-25  
dennis_zane 写道
kimmking 写道
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。


大量发这种小数据包,nagel算法的对响应的影响是非常大的,楼主自己测试的结果就可以看出来。


是的,,小数据包的情况下 竟用nagel算法,能明显看到效果!

没有禁用nagel
在字节数小于 1536的情况下 耗时竟然达到 41000ms左右




  • 大小: 29.9 KB
0 请登录后投票
   发表时间:2011-04-25  
kimmking 写道
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。



测试机器应该没有问题,
其它部门用C写的
转发这种频繁接收发送小数据包的时候,性能没有这么低呢!!
0 请登录后投票
   发表时间:2011-04-25  
kimmking 写道
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。



用飞鸽传递..能达到 11-12MB/S

这样是否能排除机器的可能呢??
0 请登录后投票
   发表时间:2011-04-25  
本机就根本不走网卡,当然快。
0 请登录后投票
   发表时间:2011-04-25  
建议LZ用mina吧,很多底层细节不用去考虑。
0 请登录后投票
   发表时间:2011-04-25  
dennis_zane 写道
kimmking 写道
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。


大量发这种小数据包,nagel算法的对响应的影响是非常大的,楼主自己测试的结果就可以看出来。


是的,nagel影响比较大。主要是响应时间。
我的意思是,nagel不是问题的关键。 我前不久也遇到类似的问题,最后发现是环境问题。
loadrunner压力下,throughout就是上不去,6M/s就再也上不去。
飞鸽和ftp下,都可以到70M/s+, 1G的网卡+网线+交换机。他们都正常,就是java下的socket在loadrunner里上不去。

然后,换了个机器测试就好了。
0 请登录后投票
   发表时间:2011-04-25  
kimmking 写道
dennis_zane 写道
kimmking 写道
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。


大量发这种小数据包,nagel算法的对响应的影响是非常大的,楼主自己测试的结果就可以看出来。


是的,nagel影响比较大。主要是响应时间。
我的意思是,nagel不是问题的关键。 我前不久也遇到类似的问题,最后发现是环境问题。
loadrunner压力下,throughout就是上不去,6M/s就再也上不去。
飞鸽和ftp下,都可以到70M/s+, 1G的网卡+网线+交换机。他们都正常,就是java下的socket在loadrunner里上不去。

然后,换了个机器测试就好了。


后来换的测试机,是什么操作系统??
0 请登录后投票
   发表时间:2011-04-25  
kimmking 写道
dennis_zane 写道
kimmking 写道
dennis_zane 写道
首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。

其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区

其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync,
这些都不会有那么大的差别。

目前 不到2k*1000次,1.5s的速度还是慢,
吞吐量不到2M/s

如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。


大量发这种小数据包,nagel算法的对响应的影响是非常大的,楼主自己测试的结果就可以看出来。


是的,nagel影响比较大。主要是响应时间。
我的意思是,nagel不是问题的关键。 我前不久也遇到类似的问题,最后发现是环境问题。
loadrunner压力下,throughout就是上不去,6M/s就再也上不去。
飞鸽和ftp下,都可以到70M/s+, 1G的网卡+网线+交换机。他们都正常,就是java下的socket在loadrunner里上不去。

然后,换了个机器测试就好了。



是客户端,服务端都换.??还是??
jre使用什么版本..?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics