文章目录
背景
操作系统版本:CentOS Linux release 7.6.1810 (Core)
操作系统镜像安装后,未进行任何调整。正常部署应用,应用在 CentOS 7.9 未出现过此类现象。
问题描述
问题描述:负载教高的时候,出现周期性的访问中断、恢复、中断、恢复 ...... 并且非常的有规律
原因分析
结论:操作系统版本默认参数配置太小,导致的访问中断。
shell
# 查看报错信息
[root@i-test ~]# dmesg
...... ...... ......
...... ...... ...... net_ratelimit: 89 callbacks suppressed
...... ...... ...... nf_conntrack: table full, dropping packet
...... ...... ...... nf_conntrack: table full, dropping packet
...... ...... ......
# 查看配置参数
[root@i-test ~]# sysctl -a | grep conntrack
...... ...... ......
# 关键因素
net.nf_conntrack_max = 65535
...... ...... ......
解决方案
如果一定要使用 CentOS 最好使用 7.9 版本。推荐新项目使用其他操作系统吧,CentOS 7 有点太老了,而且已经进入末期了,后续也不会持续维护了!可以选择 OpenEuler、Rocky Linux 等。
shell
# 临时修改,重启失效
[root@i-test ~]# echo 655350 > /proc/sys/net/netfilter/nf_conntrack_max
[root@i-test ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
655350
# 推荐,重启仍生效
[root@i-test ~]# vi /etc/sysctl.conf
# 增加参数
# net.netfilter.nf_conntrack_max = 655350
相关版本
待优化
- CentOS Linux release 7.6.1810 (Core)
无需优化
- CentOS Linux release 7.9.2009 (Core)
说明:没必要每个版本都测试了!后续发现其他有影响的版本也会记录下来。最安全的方法升级到最新版本吧!