ip_conntrack: table full, dropping packet的问题
生活随笔
收集整理的這篇文章主要介紹了
ip_conntrack: table full, dropping packet的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近一個web系統經常報出如下日志信息:
Apr 17 16:37:26 www kernel: printk: 135 messages suppressed.
Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:33 www kernel: printk: 139 messages suppressed.
Apr 17 16:37:33 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:37 www kernel: printk: 60 messages suppressed.
Apr 17 16:37:37 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:52 www kernel: printk: 19 messages suppressed.
Apr 17 16:37:52 www kernel: ip_conntrack: table full, dropping packet.
有丟包現象,應該是系統內核屏蔽了網卡功能,此時系統對外表現為連接時通時斷,接著執行如下操作:
[root@web ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
65536
針對這個問題,可調整以下參數:
echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 6553600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo 120 > /proc/sys/net/ipv4/neigh/default/gc_stale_time
echo 10240 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 40960 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 81920 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
或vi /etc/sysctl.conf
net.ipv4.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
net.ipv4.neigh.default.gc_thresh1=10240
net.ipv4.neigh.default.gc_thresh2=40960
net.ipv4.neigh.default.gc_thresh3=81920
net.core.rmem_default = 2097152
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.wmem_default = 2097152
再sysctl -p
相關參數說明:
ARP支持一個sysctl接口,可以用以配置全局參數或逐個網絡接口地進行配制。該sysctl可以通過/proc/sys/net/ipv4/neigh/*/*文件或者使用sysctl(2)接口來訪問。系統中每個接口都在/proc/sys/net/ipv4/neigh/.中有自己的目錄。`default'目錄中的設置用于所有新建的設備。sysctl相關的時間是以秒為單位,除非特別聲明過.
anycast_delay
對IPv6相鄰請求信息的回復的最大延遲時間;目前還不支持anycast。缺省值為1秒。
app_solicit
這是在使用多路廣播探測(multicast probe)前,經過網絡連接送到用戶間隙ARP端口監控程序的探測(probe)最大數目(見mcast_solicit)。缺省值為0。
base_reachable_time
一旦發現相鄰記錄,至少在一段介于base_reachable_time/2和3*base_reachable_time/2之間的隨機時間內,該記錄是有效的。如果收到上層協議的肯定反饋,那么記錄的有效期將延長。缺省值是30秒。
delay_first_probe_time
發現某個相鄰層記錄無效(stale)后,發出第一個探測要等待的時間。缺省值是5秒。
gc_interval
收集相鄰層記錄的無用記錄的垃圾收集程序的運行周期,缺省為30秒。
gc_stale_time
決定檢查一次相鄰層記錄的有效性的周期。當相鄰層記錄失效時,將在給它發送數據前,再解析一次。缺省值是60秒。
gc_thresh1
存在于ARP高速緩存中的最少層數,如果少于這個數,垃圾收集器將不會運行。缺省值是128。
gc_thresh2
保存在ARP高速緩存中的最多的記錄軟限制。垃圾收集器在開始收集前,允許記錄數超過這個數字5秒。缺省值是512。
gc_thresh3
保存在ARP高速緩存中的最多記錄的硬限制,一旦高速緩存中的數目高于此,垃圾收集器將馬上運行。缺省值是1024。
locktime
ARP記錄保存在高速緩存內的最短時間(jiffy數),以防止存在多個可能的映射(potential mapping)時,ARP高速緩存系統的顛簸(經常是由于網絡的錯誤配置而引起)。缺省值是1秒。
mcast_solicit
在把記錄標記為不可抵達的之前,用多路廣播/廣播(multicast/broadcast)方式解析地址的最大次數。
缺省值是3。
proxy_delay
當接收到有一個請求已知的代理ARP地址的ARP請求時,在回應前可以延遲的jiffy(時間單位,見BUG)數目。這樣,以防止網絡風暴。缺省值是0.8秒。
proxy_qlen
能放入代理ARP地址隊列(proxy-ARP addresses)的數據包最大數目。缺省值是64。
retrans_time
重發一個請求前的等待jiffy(時間單位,見BUG)的數目。缺省值是1秒。
ucast_solicit
詢問ARP端口監控程序前,試圖發送單探測(unicast probe)的次數。(見app_solicit).缺省值是3秒。
unres_qlen
每個沒有被其它網絡層解析的地址,在隊列中可存放包的最大數目。缺省值是3.
轉載:http://blog.ixpub.net/html/18/9727518-402981.html
Apr 17 16:37:26 www kernel: printk: 135 messages suppressed.
Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:33 www kernel: printk: 139 messages suppressed.
Apr 17 16:37:33 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:37 www kernel: printk: 60 messages suppressed.
Apr 17 16:37:37 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:52 www kernel: printk: 19 messages suppressed.
Apr 17 16:37:52 www kernel: ip_conntrack: table full, dropping packet.
有丟包現象,應該是系統內核屏蔽了網卡功能,此時系統對外表現為連接時通時斷,接著執行如下操作:
[root@web ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
65536
針對這個問題,可調整以下參數:
echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 6553600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo 120 > /proc/sys/net/ipv4/neigh/default/gc_stale_time
echo 10240 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 40960 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 81920 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
或vi /etc/sysctl.conf
net.ipv4.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
net.ipv4.neigh.default.gc_thresh1=10240
net.ipv4.neigh.default.gc_thresh2=40960
net.ipv4.neigh.default.gc_thresh3=81920
net.core.rmem_default = 2097152
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.wmem_default = 2097152
再sysctl -p
相關參數說明:
ARP支持一個sysctl接口,可以用以配置全局參數或逐個網絡接口地進行配制。該sysctl可以通過/proc/sys/net/ipv4/neigh/*/*文件或者使用sysctl(2)接口來訪問。系統中每個接口都在/proc/sys/net/ipv4/neigh/.中有自己的目錄。`default'目錄中的設置用于所有新建的設備。sysctl相關的時間是以秒為單位,除非特別聲明過.
anycast_delay
對IPv6相鄰請求信息的回復的最大延遲時間;目前還不支持anycast。缺省值為1秒。
app_solicit
這是在使用多路廣播探測(multicast probe)前,經過網絡連接送到用戶間隙ARP端口監控程序的探測(probe)最大數目(見mcast_solicit)。缺省值為0。
base_reachable_time
一旦發現相鄰記錄,至少在一段介于base_reachable_time/2和3*base_reachable_time/2之間的隨機時間內,該記錄是有效的。如果收到上層協議的肯定反饋,那么記錄的有效期將延長。缺省值是30秒。
delay_first_probe_time
發現某個相鄰層記錄無效(stale)后,發出第一個探測要等待的時間。缺省值是5秒。
gc_interval
收集相鄰層記錄的無用記錄的垃圾收集程序的運行周期,缺省為30秒。
gc_stale_time
決定檢查一次相鄰層記錄的有效性的周期。當相鄰層記錄失效時,將在給它發送數據前,再解析一次。缺省值是60秒。
gc_thresh1
存在于ARP高速緩存中的最少層數,如果少于這個數,垃圾收集器將不會運行。缺省值是128。
gc_thresh2
保存在ARP高速緩存中的最多的記錄軟限制。垃圾收集器在開始收集前,允許記錄數超過這個數字5秒。缺省值是512。
gc_thresh3
保存在ARP高速緩存中的最多記錄的硬限制,一旦高速緩存中的數目高于此,垃圾收集器將馬上運行。缺省值是1024。
locktime
ARP記錄保存在高速緩存內的最短時間(jiffy數),以防止存在多個可能的映射(potential mapping)時,ARP高速緩存系統的顛簸(經常是由于網絡的錯誤配置而引起)。缺省值是1秒。
mcast_solicit
在把記錄標記為不可抵達的之前,用多路廣播/廣播(multicast/broadcast)方式解析地址的最大次數。
缺省值是3。
proxy_delay
當接收到有一個請求已知的代理ARP地址的ARP請求時,在回應前可以延遲的jiffy(時間單位,見BUG)數目。這樣,以防止網絡風暴。缺省值是0.8秒。
proxy_qlen
能放入代理ARP地址隊列(proxy-ARP addresses)的數據包最大數目。缺省值是64。
retrans_time
重發一個請求前的等待jiffy(時間單位,見BUG)的數目。缺省值是1秒。
ucast_solicit
詢問ARP端口監控程序前,試圖發送單探測(unicast probe)的次數。(見app_solicit).缺省值是3秒。
unres_qlen
每個沒有被其它網絡層解析的地址,在隊列中可存放包的最大數目。缺省值是3.
轉載:http://blog.ixpub.net/html/18/9727518-402981.html
轉載于:https://blog.51cto.com/chenwenming/713222
總結
以上是生活随笔為你收集整理的ip_conntrack: table full, dropping packet的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何安装redmine插件
- 下一篇: IBM胡世忠谈大数据时代企业面临的四大挑