Iperf: 错误 - 套接字缓冲区大小设置不正确

创建于 2018-06-20  ·  3评论  ·  资料来源: esnet/iperf

语境

我正在尝试从我的机​​器 192.168.1.50 到另一台机器 192.168.1.220 进行 iperf 测试。 以下测试将给出错误“错误 - 套接字缓冲区大小设置不正确”:

iperf3 -c 192.168.1.220 -w 512K

当 -w 设置为 416k 时,此命令将起作用,任何更高的值都会显示该错误。 我做了一些探查,我认为这是由于我的 tcp 会话窗口太小,但似乎并非如此。

这些是一些 sysctl 值:

net.core.rmem_max = 16777216
net.core.rmem_default = 212992
net.core.wmem_max = 212992
net.ipv4.tcp_rmem = 4096        87380   16777216
net.ipv4.tcp_wmem = 4096        16384   16777216

然而,我能够在另一个方向成功地进行这个测试。 所以我相信这与这台机器上的某种设置有关,我不知道它可能是什么。

任何帮助将不胜感激。

谢谢!

  • iperf3 版本:
    iperf 3.1.7
    Linux 3450asterisk 3.10.0-123.9.3.el7.x86_64 #1 SMP 星期四 11 月 6 日 15:06:03 UTC 2014 x86_64
    可用的可选功能:CPU 亲和性设置、IPv6 流标签、TCP 拥塞算法设置、sendfile / zerocopy、socket pacing

  • 硬件:
    板载 NIC,8 GB 内存,至强 E3-1271

  • 操作系统(和发行版,如果有的话):
    CentOS 7

错误报告

  • 预期行为
    iperf 应该能够处理该窗口大小

  • 实际行为
    当窗口大小大于 416k 时,iperf 抛出错误

  • 重现步骤
    尝试使用大于 416k 的窗口大小进行 iperf 测试
question

最有用的评论

我以为我已经写了一个回应,但显然我没有。

您可能想尝试增加net.core.wmem_max的大小,它似乎仍然具有相当低的/默认值。

可以在此处找到有关调整 Linux 内核的其他一些技巧(包括设置套接字缓冲区大小):

http://fasterdata.es.net/host-tuning/linux/

最后,您可能需要考虑使用较新版本的 iperf3(在撰写本文时,iperf 3.6 是最新版本)。 如果我没记错的话,一些较新的版本在套接字缓冲区设置代码中进行了一些修复,虽然是临时的,但我记得它们是否直接适用于这个问题。

所有3条评论

我以为我已经写了一个回应,但显然我没有。

您可能想尝试增加net.core.wmem_max的大小,它似乎仍然具有相当低的/默认值。

可以在此处找到有关调整 Linux 内核的其他一些技巧(包括设置套接字缓冲区大小):

http://fasterdata.es.net/host-tuning/linux/

最后,您可能需要考虑使用较新版本的 iperf3(在撰写本文时,iperf 3.6 是最新版本)。 如果我没记错的话,一些较新的版本在套接字缓冲区设置代码中进行了一些修复,虽然是临时的,但我记得它们是否直接适用于这个问题。

这是一个很好的阅读,谢谢。

关闭此问题,因为我认为问题已解决。

此页面是否有帮助?
0 / 5 - 0 等级