最近发现一个问题,用iperf测试的虚拟机带宽,对于5.4kernel的guest的带宽明显小于使用4.14的kernel,通过对比tcp的kernel参数看到5.4kernel采用bbr的拥塞控制算法而4.14 使用cubic。在5.4的kernel上打开cubic后发现带宽正常。由此可见,当测试网络性能出现问题时,最为有效的策略时查看环境参数。关于kernel的网络参数可以使用sysctl或者在/proc/sys/net下进行查看。例如:
sysctl -A |grep tcp
kernel查看到有关tcp的所有kernel参数,修改kernel参数可以使用
sysctl xxx=yy
其中xxx代表参数的完整名,包含了文件名的在/proc/sys下的路径信息。