小编Ste*_*hen的帖子

最新版本的 Linux 中更高的 TCP 延迟

在我的研究小组中,我们最近将我们机器上的操作系统从 Red Hat 6.2 升级到 Debian 8.3,并观察到我们机器之间通过集成 Intel 1G NIC 的 TCP 往返时间从大约 110µs 增加到 220µs。

起初,我以为是配置问题,所以我将所有tcp_low_latency=1未升级的Red Hat机器的sysctl配置(例如)复制到Debian机器上,但并没有解决问题。接下来,我认为这可能是 Linux 发行版的问题,并在机器上安装了 Red Hat 7.2,但往返时间仍然在 220µs 左右。

最后,我认为问题可能出在 Linux 内核版本上,因为 Debian 8.3 和 Red Hat 7.2 都使用了内核 3.x,而 Red Hat 6.2 使用了内核 2.6。所以为了测试这一点,我安装了带有 Linux 内核 2.6 和宾果游戏的 Debian 6.0!时间再次加快,为 110µs。

其他人在最新版本的 Linux 中是否也遇到过这些更高的延迟,是否有已知的解决方法?


最小工作示例

下面是一个 C++ 应用程序,可用于对延迟进行基准测试。它通过发送消息、等待响应,然后发送下一条消息来测量延迟。它使用 100 字节的消息执行 100,000 次此操作。因此,我们可以将客户端的执行时间除以 100,000 以获得往返延迟。要使用它首先编译程序:

g++ -o socketpingpong -O3 -std=c++0x Server.cpp
Run Code Online (Sandbox Code Playgroud)

接下来在主机(比如 192.168.0.101)上运行应用程序的服务器端版本。我们指定 IP 以确保我们托管在众所周知的接口上。

socketpingpong 192.168.0.101
Run Code Online (Sandbox Code Playgroud)

然后使用 Unix 实用程序time来测量客户端的执行时间。 …

networking linux performance latency tcp

8
推荐指数
1
解决办法
396
查看次数

标签 统计

latency ×1

linux ×1

networking ×1

performance ×1

tcp ×1