我有一个在同一主机上运行的 tcp 客户端和服务器。客户端发送消息,服务器确认它,客户端发送下一条消息。在任何时候,只有一个未确认的未确认消息。消息大小为 1KB。家用电脑运行 CentOs 6.3,办公服务器运行 RHEL 6.3
当我在家用计算机上运行上述客户端服务器时,我获得了非常一致的吞吐量,大约每秒 41k 条消息。办公服务器只有 1% 的 CPU 负载。但是,如果我在我的办公室服务器上运行相同的客户端/服务器,我的吞吐量会在 18k-50K 之间......吞吐量波动很大。任何人都可以提供建议
同一主机上 tcp 波动的可能原因是什么?
关于如何调试 tcp 性能的任何想法?
更新:- 我没有使用环回地址,而是分配给 eth1 的 IP。尽管 eth1 的 IP 不在 /etc/hosts 中并不重要,因为第一个请求会导致查找被缓存。
更新 1:- 在环回地址上运行,产生相同的波动输出。此外,当我查看时cat /proc/interrupts
,我看到每个 NIC 有 5 个 rx 队列和 1 个 tx 队列。是 5rx 队列导致可变性吗?