锁定老帖子 主题:socket 优化传输效率!!高手进
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-25
dennis_zane 写道 首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。 其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区 其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync, 这些都不会有那么大的差别。 目前 不到2k*1000次,1.5s的速度还是慢, 吞吐量不到2M/s 如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。 |
|
返回顶楼 | |
发表时间:2011-04-25
kimmking 写道 dennis_zane 写道 首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。
其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区 其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync, 这些都不会有那么大的差别。 目前 不到2k*1000次,1.5s的速度还是慢, 吞吐量不到2M/s 如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。 大量发这种小数据包,nagel算法的对响应的影响是非常大的,楼主自己测试的结果就可以看出来。 |
|
返回顶楼 | |
发表时间: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左右 |
|
返回顶楼 | |
发表时间:2011-04-25
kimmking 写道 dennis_zane 写道 首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。
其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区 其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync, 这些都不会有那么大的差别。 目前 不到2k*1000次,1.5s的速度还是慢, 吞吐量不到2M/s 如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。 测试机器应该没有问题, 其它部门用C写的 转发这种频繁接收发送小数据包的时候,性能没有这么低呢!! |
|
返回顶楼 | |
发表时间:2011-04-25
kimmking 写道 dennis_zane 写道 首先,你传输的都是十几个字节,所以一定要禁用nagle算法,也就是tcpNoDelay设置为true,提高响应速度。
其次,你的读写应该是批量的吧,发送接受都是搞一个byte数组缓冲区 其实感觉最大的问题不是nagle,也不是batch或buffer、async或sync, 这些都不会有那么大的差别。 目前 不到2k*1000次,1.5s的速度还是慢, 吞吐量不到2M/s 如果网络问题排除,则测试机器可能有问题,换一个机器+新装的系统试试。 用飞鸽传递..能达到 11-12MB/S 这样是否能排除机器的可能呢?? |
|
返回顶楼 | |
发表时间:2011-04-25
本机就根本不走网卡,当然快。
|
|
返回顶楼 | |
发表时间:2011-04-25
建议LZ用mina吧,很多底层细节不用去考虑。
|
|
返回顶楼 | |
发表时间: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里上不去。 然后,换了个机器测试就好了。 |
|
返回顶楼 | |
发表时间: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里上不去。 然后,换了个机器测试就好了。 后来换的测试机,是什么操作系统?? |
|
返回顶楼 | |
发表时间: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使用什么版本..? |
|
返回顶楼 | |