Linux:减少 UDP 数据包错误

Linux:减少 UDP 数据包错误

我遇到了 UDP 数据包接收错误(在 Linux‘netstat -su’命令下)。

我在机器 A(RHEL 5.2)上运行了 10 个 UDP 进程,每个进程每秒向同一地址和同一 UDP 端口发送 50 次 290 字节数据包。在接收端(机器 B RHEL5.2),我有一个进程监听此 UDP 端口。此外,在机器 B,我运行“netstat -su”来检查 UDP 数据包错误。

我读到我需要配置我的 Machine-B Linux sysctl,并且我针对上述测试做了以下操作:

   net.core.rmem_max = 33554432
   net.core.netdev_max_backlog = 2000

另外,我已将机器 A 和机器 B 中两个接口的 MTU 大小更改为 1380。

尽管如此,我仍然遇到 UDP 数据包接收错误增加的情况(在 netstat 下)

怎么回事?我还需要配置什么吗?

顺便说一句,我也尝试了 net.core.rmem_max = 131071,但仍然面临数据包接收错误 :(

答案1

net.core.rmem_max是可以设置的最大值。不过,还有一个默认值,称为net.core.rmem_default- 我也会增加这个值。

你还必须调整应用程序的缓冲区设置。人们经常尝试调整内核设置,但不会忘记应用程序的设置。

相关内容