问题
系统表现出一些性能下降。
使用 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。
更多: 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