我正在玩 Ubuntu 18.04,我注意到 TCP 性能回归阻止我升级当前正在运行的服务器,因为它们对延迟非常敏感。
对于我的特定用例,我实现了一个简单的 TCP 测试程序,该程序作为服务器运行,在向所有客户端发送一批消息之前等待连接一定数量的客户端。然后我测量所花费的时间SENDMSG()固定大小的缓冲器,以N个客户端。
代码示例
我在位于同一数据中心的两台不同的机器上运行服务器和客户端。
结果
Ubuntu 16.04
版本
srv01:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
srv01:~$ uname -ra
Linux srv01 4.4.0-97-generic #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
系统控制
net.core.netdev_max_backlog = 3000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_moderate_rcvbuf = 0
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_rmem = 131072 1048576 16777216
net.ipv4.tcp_wmem = 131072 1048576 …
Run Code Online (Sandbox Code Playgroud)