我是靠谱客的博主 神勇钻石,最近开发中收集的这篇文章主要介绍通过调参解决 nf_conntrack: table full, dropping packet,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为什么80%的码农都做不了架构师?>>>   hot3.png

系统连接数高的时候,机子出现掉包,查看日志发现报错,nf_conntrack: table full, dropping packet,解决办法就是调整参数。

有的人建议关闭防火墙,但是对于linux来说,iptables就是一个命令好像没有关闭开启之说。

这里采取调整参数的方式进行调优。

查看相关参数

使用 /sbin/sysctl net.netfilter.nf_conntrack_max 可以查看当前值

使用 /sbin/sysctl net.netfilter.nf_conntrack_count 可以查看tracking table数

提高 net.netfilter.nf_conntrack_max

默认的net.netfilter.nf_conntrack_max65536

这里我们首先提高 net.netfilter.nf_conntrack_max , 当然,肯定不是越高越好,如果你的机器是一个64GB 64bit的系统,那么最合适的值是

 CONNTRACK_MAX = 64*1024*1024*1024/16384/2 = 2097152

即时生效使用

/sbin/sysctl -w net.netfilter.nf_conntrack_max = 2097152

确保重启后也生效使用

echo net.ipv4.netfilter.ip_conntrack_max = 2097152 >> /etc/sysctl.conf

提升hash-table的数量

哈希表一般是net.netfilter.nf_conntrack_max的1/8

hashsize = nf_conntrack_max / 8

更改哈希表的值

echo 262144 > /sys/module/nf_conntrack/parameters/hashsize

并且添加到模块/etc/modprobe.conf

options ip_conntrack hashsize=262144

调整优化系统参数

/etc/sysctl.conf进行调整

net.netfilter.nf_conntrack_max  =   2097152  
net.netfilter.ip_conntrack_tcp_timeout_established  =   3600  
net.netfilter.nf_conntrack_tcp_timeout_close_wait  =   60  
net.netfilter.nf_conntrack_tcp_timeout_fin_wait  =   120  
net.netfilter.nf_conntrack_tcp_timeout_time_wait  =   120 

http://taskover.zoker.io/

转载于:https://my.oschina.net/zoker/blog/798245

最后

以上就是神勇钻石为你收集整理的通过调参解决 nf_conntrack: table full, dropping packet的全部内容,希望文章能够帮你解决通过调参解决 nf_conntrack: table full, dropping packet所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部