系統報錯:ip_conntrack: table full, dropping packet.

早上接到報警發現機器web訪問不正常,ping也丟包很嚴重,登錄查看/var/log/message發現大量如下記錄:
Aug 10 07:43:01 localhost kernel: printk: 2059 messages suppressed.
Aug 10 07:43:01 localhost kernel: ip_conntrack: table full, dropping packet.
Aug 10 07:43:06 localhost kernel: printk: 2169 messages suppressed.
Aug 10 07:43:06 localhost kernel: ip_conntrack: table full, dropping packet.
Aug 10 07:43:11 localhost kernel: printk: 1996 messages suppressed.
Aug 10 07:43:11 localhost kernel: ip_conntrack: table full, dropping packet.
Aug 10 07:43:16 localhost kernel: printk: 2130 messages suppressed.
Aug 10 07:43:16 localhost kernel: ip_conntrack: table full, dropping packet.
Aug 10 07:43:21 localhost kernel: printk: 2285 messages suppressed.
Aug 10 07:43:21 localhost kernel: ip_conntrack: table full, dropping packet.
 
在網上查看了一下資料,發現如下:
 ip_conntrack表的最大值由參數ip_conntrack_max控制,查看當前設置的最大值可通過命令:
 cat /proc/sys/net/ipv4/ip_conntrack_max,redhat默認大小是65536,這個值的大小是有機器的內存決定的,65536是1G內存的大小,如果你的內存不止1G,那麼設置的數值大小就是65536的倍數。2G是131072,4G是262144。數值可以比當前內存可設置的最大值小,但是不能超過最大值,要不然設置之後是不生效的。
 
要查看當前系統ip_conntrack的大小可以通過命令:
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count
 
 
設置方法如下:
方式一:
echo 131072 >/proc/sys/net/ipv4/ip_conntrack_max
要實現每次開機後都生效的話,要加到開機啓動腳本/etc/rc.local裏,其他開機自動運行的腳本也行。
方式二:
echo 'net.ipv4.ip_conntrack_max=131072'  >> /etc/sysctl.conf
sysctl -p 
這樣每次開機都能自動設置該參數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章