问题

系统表现出一些性能下降。
使用 netstat 检查显示有大量的“packet reassembles failed 数据包重组失败”消息:

# netstat -s | fgrep reassembles
353357449 packet reassembles failed
353359152 packet reassembles failed
353360314 packet reassembles failed
353361547 packet reassembles failed
353363020 packet reassembles failed
353364064 packet reassembles failed

关于内存

文档说:

ipfrag_high_thresh - INTEGER
  Maximum memory used to reassemble IP fragments. When
  ipfrag_high_thresh bytes of memory is allocated for this purpose,
  the fragment handler will toss packets until ipfrag_low_thresh
  is reached.
ipfrag_low_thresh - INTEGER
  See ipfrag_high_thresh

检查当前的 ipfrag_high_thresh 和 ipfrag_low_thresh 值:

ipfrag_high_thresh
4194304
ipfrag_low_thresh
3145728

在这种情况下,首先将 ipfrag_high_thresh 增加到当前值的两倍。
IE:

# echo "8388608" > /proc/sys/net/ipv4/ipfrag_high_thresh

同样,如果结果令人满意,请将其添加到 /etc/rc.local。

CentOS/RHEL packet reassembles failed
更多: zhilu jiaocheng

关于超时

检查当前 ipfrag_time :

# cat /proc/sys/net/ipv4/ipfrag_time
30

考虑将其增加到 60:

# echo "60" > /proc/sys/net/ipv4/ipfrag_time

如果成功,可以通过将上述 echo 命令添加到 /etc/rc.local 使其永久化

解决方案

通常,如果出现以下情况,IP 数据包重组可能会失败:

  • 没有足够的内存来重新组合 IP 片段。
  • 等待剩余 ip 片段时发生超时。
  • IP 片段被丢弃或者损坏。

这篇文章解决了问题 #1 和 #2.

日期:2020-09-17 00:14:07 来源:oir作者:oir