我有一个在同一主机上运行的tcp客户端和服务器。客户端发送消息,服务器确认消息,客户端发送下一条消息。在任何时候,只有一个未完成的未发送消息。邮件大小为1KB。家用计算机运行CentOs 6.3,办公室服务器运行RHEL 6.3
当我在家用计算机上运行上述客户端服务器时,我获得了大约每秒41k条消息的非常一致的吞吐量。办公室服务器只有1%的CPU负载。但是,如果我在我的办公室服务器上运行相同的客户端/服务器,我的吞吐量范围从18k-50K ......吞吐量高度波动。任何人都可以提供关于
的建议同一主机上tcp波动的原因可能是什么?
关于如何调试tcp性能的任何想法?
更新: - 我没有使用环回地址,而是将IP分配给eth1。虽然eth1的IP不在/ etc / hosts中并不重要,因为第一个请求会导致查询被缓存。
更新1: -
在环回地址上运行,产生相同的波动输出。
此外,当我查看cat /proc/interrupts
时,我看到每个NIC有5个rx队列和一个tx队列。它是5rx队列引起的变化吗?
答案 0 :(得分:0)
以下是我可以立即想到的一些可能性:
tc qdisc
,看看是否有什么东西在上面。另外看看iptables。我调试它的方式是:
iperf -s
,在另一个终端上iperf -c localhost
。您是否获得稳定的结果,如果是,那么问题就是您的客户端和服务器中的错误。lo
接口是否有丢包,以及/ proc / sys / ipv4中的其他统计信息。