我有多个客户端通过tcp套接字将数据发送到单个服务器,所有客户端和服务器都在具有10 gb网络接口的linux(CentOS 7.2)服务器上运行。
但是我发现性能比单个客户端和单个服务器要慢得多。
所以我用网络带宽测量工具iperf进行了另一项测试。
首先在server217上启动服务器,然后使用单个客户端(server218)测试带宽,结果如下:
和客户端输出:
然后我使用两个客户端(server218和server219)同时开始测试,结果是:
和客户端输出:
如您所见,当我使用两个客户端时,结果为【3.08 + 4.04 = 7.12 Gb】,这比以前的【9.41 Gb】要慢得多,此外,带宽也变得非常不稳定。
我试图设置一个更大的tcp缓冲区,但是没有区别。
原始tcp缓冲区是
net.ipv4.tcp_rmem: 4096 87380 6291456
net.ipv4.tcp_wmem: 4096 16384 4194304
我更改为
net.ipv4.tcp_rmem: 4096 87380 8388608
net.ipv4.tcp_rmem: 4096 65536 8388608
还有什么我可以尝试的吗?