本篇文章給大家分享的是有關(guān)CentOS ip_conntrack中表滿和丟包的解決方法是怎樣的,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,包括成都做網(wǎng)站、成都網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營(yíng)銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營(yíng)銷等。成都創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,成都創(chuàng)新互聯(lián)核心團(tuán)隊(duì)十余年專注互聯(lián)網(wǎng)開(kāi)發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹(shù)立了良好口碑。那么,為什么會(huì)出現(xiàn) ip_conntrack: table full, dropping packet 呢?iptables 使用一張連接跟蹤表,來(lái)描述連接狀態(tài),當(dāng)這張表滿了,就會(huì)在日志里面寫(xiě)入該信息。這可能有點(diǎn)難以理解,那么到底在什么情況下,我們需要在日志里面查找這條記錄呢?
當(dāng)你發(fā)現(xiàn),PING 服務(wù)器的結(jié)果,出現(xiàn)丟包,或者出現(xiàn)延遲不穩(wěn)定,忽高忽低,在排除線路因素之后,就應(yīng)當(dāng)考慮 ip_conntrack: table full, dropping packet 。
下面介紹 ip_conntrack: table full, dropping packet 的解決方法:
CentOS 6 /RHEL 5 下的解決方法:
1.運(yùn)行
代碼如下:
sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000.sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000
2.在 /etc/sysctl 中加入:
代碼如下:
net.ipv4.netfilter.ip_conntrack_max = 100000.net.ipv4.netfilter.ip_conntrack_max = 100000
3.使其生效:
代碼如下:
sysctl -p.sysctl -p
CentOS 6 /RHEL 6 下的解決方法:
1.運(yùn)行
代碼如下:
sysctl -w net.nf_conntrack_max=100000.sysctl -w net.nf_conntrack_max=100000
2.在 /etc/sysctl 中加入:
代碼如下:
net.nf_conntrack_max = 100000.net.nf_conntrack_max = 100000
3.使其生效:
代碼如下:
sysctl -p.sysctl -p
*** 如果 Xen DomU 出現(xiàn)零星丟包或者 PING 忽高忽低,同時(shí)關(guān)閉 iptables 后 ping 正常,則多半是這個(gè)問(wèn)題。
或參考下面的方法試試
一。服務(wù)器出現(xiàn)了大量的丟包現(xiàn)象,通過(guò)查看message出現(xiàn)了下面的錯(cuò)誤:
kernel:ip_conntrack:table full,dropping packet
解決的方法:
代碼如下:
顯示當(dāng)前的會(huì)話數(shù):
cat /proc/net/ip_conntrack | wc -l
顯示系統(tǒng)目前配置的較大 conntrack 數(shù):
cat /proc/sys/net/ipv4/ip_conntrack_max
# 一旦前者的數(shù)字大于后者時(shí),系統(tǒng)就報(bào)錯(cuò),解決辦法:
echo “” > /proc/sys/net/ipv4/ip_conntrack_max
# 然后寫(xiě)入
/etc/sysctl.conf
net.ipv4.ip_conntrack_max =
二
有兩點(diǎn)我們要注意.
-conntrack較大數(shù)量.叫做conntrack_max
-存儲(chǔ)這些conntrack的hash表的大小,叫做hashsize
當(dāng)conntrack入口數(shù)大于conntrack_max時(shí),在hash表中每一個(gè)conntrack list中的存儲(chǔ)的入口將不可控.(conntrack_mark/hashsize 為每個(gè)list所能存儲(chǔ)的入口的數(shù)量)
hash表存在于固定的的不可swap的內(nèi)存中. conntrack_mark決定占用多少這些不可swap的內(nèi)存.
缺省的hashsize
——————————–
conntrack_max=hashsize*8
i386中 hashsize=conntrack_max/8=ramsize(in bytes)/131072=ramsize(in MegaBytes)*8.
所以32位pc,512M內(nèi)存可以存512*1024^2/128/1024=512*8=4096(連接池list)
但是正確的算法是:
hashsize=conntrack_max/8=ramsize(in bytes)/131072/(x/32)
x表示使用的指針類型是(32位還是64的)
—————————-\
讀取conntrack_max值
2.4內(nèi)核
cat /proc/sys/net/ipv4/ip_conntrack_max
2.6內(nèi)核
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
讀取hashsize值
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets
——————————
你可修改這兩個(gè)值以適應(yīng)高負(fù)載的netfilter的應(yīng)用
系統(tǒng)默認(rèn)為conntrack_max:hashsize是8:1,你可以設(shè)成1:1以提高性能.
————————-
設(shè)置conntrack_max
echo $CONNTRACK_MAX > /proc/sys/net/ipv4/ip_conntrack_max
設(shè)置hashsize
如果(netfilter conntrack靜態(tài)編譯在內(nèi)核中),2.4中可以在編譯時(shí)設(shè)置,2.6可以在啟動(dòng)中(boot時(shí))加入ip_conntrack.hashsize=$hashsize
如果為modules,則可以使用 modprobe ip_conntrack hashsize=$hashsize
#####################################
實(shí)踐過(guò)方法:
Vi /etc/modprobe.conf
添加:
options ip_conntrack hashsize=524288
vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_max = 524288 (根據(jù)自己的物理內(nèi)存算出來(lái)的)
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
##########################################
————————–
conntrack使用的內(nèi)存計(jì)算
size_of_mem_used_by_conntrack (in bytes) =
CONNTRACK_MAX * sizeof(struct ip_conntrack) +
HASHSIZE * sizeof(struct list_head)
其中sizeof(struct ip_conntrack)大概在192-352字節(jié)之間.
sizeof(struct list_head) = 2 * size_of_a_pointer(i386中為4字節(jié))
一個(gè)例子512m內(nèi)存,使用384m來(lái)用于conntrack則
384*1024*1024/(352+8)(使用它是保守計(jì)算) =~1143901 (此為conntrack:hashszie為1:1,352為sizeof(ip_conntrack),8為sizeof(list_head).
由于hash好設(shè)為2的乘方的數(shù),所以為1048576(2^20).
———————
附相關(guān)設(shè)置及命令:
ip_conntrack timeout 原值432000秒(5天)
可改為10小時(shí),echo “600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
ip_conntrack buffer使用情況
grep conn /proc/slabinfo
例ip_conntrack 188069 229570 336 11 1 : tunables 54 27 8 : slabdata 20870
相關(guān)修改:
echo “1024 65000″ > /proc/sys/net/ipv4/ip_local_port_range
echo “100 1200 128 512 15 5000 500 1884 2″>/proc/sys/vm/bdflush
echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo “1″ > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo “1048576″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo “1″ > /proc/sys/net/ipv4/ip_forward
echo “268435456″ >/proc/sys/kernel/shmall
echo “536870912″ >/proc/sys/kernel/shmmax
echo “600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo “1024″ > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo “2048″ > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo “4096″ > /proc/sys/net/ipv4/neigh/default/gc_thresh4
echo “52428800″ > /proc/sys/net/ipv4/route/max_size
echo “1″ > /proc/sys/net/ipv4/conf/all/proxy_arp
echo “1″ > /proc/sys/net/ipv4/tcp_window_scaling
以上就是CentOS ip_conntrack中表滿和丟包的解決方法是怎樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁(yè)名稱:CentOSip_conntrack中表滿和丟包的解決方法是怎樣的-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://jinyejixie.com/article28/djescp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化、自適應(yīng)網(wǎng)站、全網(wǎng)營(yíng)銷推廣、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容