91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CentOS ip_conntrack中表滿和丟包的解決方法是怎樣的

發布時間:2021-09-28 15:57:02 來源:億速云 閱讀:857 作者:柒染 欄目:系統運維

本篇文章給大家分享的是有關CentOS ip_conntrack中表滿和丟包的解決方法是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

那么,為什么會出現 ip_conntrack: table full, dropping packet 呢?iptables 使用一張連接跟蹤表,來描述連接狀態,當這張表滿了,就會在日志里面寫入該信息。這可能有點難以理解,那么到底在什么情況下,我們需要在日志里面查找這條記錄呢?

當你發現,PING 服務器的結果,出現丟包,或者出現延遲不穩定,忽高忽低,在排除線路因素之后,就應當考慮 ip_conntrack: table full, dropping packet 。

下面介紹 ip_conntrack: table full, dropping packet 的解決方法:

CentOS 6 /RHEL 5 下的解決方法:

1.運行


代碼如下:

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.運行


代碼如下:

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 出現零星丟包或者 PING 忽高忽低,同時關閉 iptables 后 ping 正常,則多半是這個問題。

或參考下面的方法試試

一。服務器出現了大量的丟包現象,通過查看message出現了下面的錯誤:
kernel:ip_conntrack:table full,dropping packet

解決的方法:

代碼如下:


顯示當前的會話數:
cat /proc/net/ip_conntrack | wc -l
顯示系統目前配置的最大 conntrack 數:
cat /proc/sys/net/ipv4/ip_conntrack_max
# 一旦前者的數字大于后者時,系統就報錯,解決辦法:
echo “” > /proc/sys/net/ipv4/ip_conntrack_max
# 然后寫入
/etc/sysctl.conf
net.ipv4.ip_conntrack_max =



有兩點我們要注意.

-conntrack最大數量.叫做conntrack_max
-存儲這些conntrack的hash表的大小,叫做hashsize
當conntrack入口數大于conntrack_max時,在hash表中每一個conntrack list中的存儲的入口將不可控.(conntrack_mark/hashsize 為每個list所能存儲的入口的數量)
hash表存在于固定的的不可swap的內存中. conntrack_mark決定占用多少這些不可swap的內存.
缺省的hashsize
——————————–
conntrack_max=hashsize*8
i386中 hashsize=conntrack_max/8=ramsize(in bytes)/131072=ramsize(in MegaBytes)*8.
所以32位pc,512M內存可以存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內核
cat /proc/sys/net/ipv4/ip_conntrack_max
2.6內核
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max

讀取hashsize值
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets
——————————
你可修改這兩個值以適應高負載的netfilter的應用
系統默認為conntrack_max:hashsize是8:1,你可以設成1:1以提高性能.
————————-
設置conntrack_max
echo $CONNTRACK_MAX > /proc/sys/net/ipv4/ip_conntrack_max
設置hashsize
如果(netfilter conntrack靜態編譯在內核中),2.4中可以在編譯時設置,2.6可以在啟動中(boot時)加入ip_conntrack.hashsize=$hashsize
如果為modules,則可以使用 modprobe ip_conntrack hashsize=$hashsize
#####################################
實踐過方法:
Vi /etc/modprobe.conf
添加:
options ip_conntrack hashsize=524288

vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_max = 524288 (根據自己的物理內存算出來的)
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
##########################################
————————–
conntrack使用的內存計算
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字節之間.
sizeof(struct list_head) = 2 * size_of_a_pointer(i386中為4字節)
一個例子512m內存,使用384m來用于conntrack則
384*1024*1024/(352+8)(使用它是保守計算) =~1143901 (此為conntrack:hashszie為1:1,352為sizeof(ip_conntrack),8為sizeof(list_head).
由于hash最好設為2的乘方的數,所以為1048576(2^20).
———————
附相關設置及命令:
ip_conntrack timeout 原值432000秒(5天)
可改為10小時,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

相關修改:
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中表滿和丟包的解決方法是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋州市| 阿拉善右旗| 齐齐哈尔市| 屯门区| 林芝县| 太康县| 乌拉特中旗| 长宁区| 合江县| 河间市| 宁阳县| 梓潼县| 班玛县| 资溪县| 汉寿县| 亚东县| 色达县| 改则县| 巴东县| 思茅市| 鹤山市| 大兴区| 南和县| 东辽县| 巴马| 扶绥县| 项城市| 松阳县| 新建县| 来安县| 旅游| 望谟县| 湛江市| 江山市| 马公市| 弋阳县| 阿坝县| 苏州市| 阿坝| 梅州市| 六盘水市|