1 問題:ping或者telnet設備顯示故障vim
[root@localhost ~]# ping 192.168.163.89緩存
connect: No buffer space availablespa
2 緣由:ip
ARP緩存太小致使的。配置
內核維護的arp表過於龐大, 發生抖動, 所以致使了這種狀況請求
幾個內核ARP參數:
=================================
gc_stale_time
決定檢查一次相鄰層記錄的有效性的週期。當相鄰層記錄失效時,將在給它發送數據前,再解析一次。缺省值是60秒。
gc_thresh1
存在於ARP高速緩存中的最少層數,若是少於這個數,垃圾收集器將不會運行。缺省值是128。
gc_thresh2
保存在 ARP 高速緩存中的最多的記錄軟限制。垃圾收集器在開始收集前,容許記錄數超過這個數字 5 秒。缺省值是 512。
gc_thresh3
保存在 ARP 高速緩存中的最多記錄的硬限制,一旦高速緩存中的數目高於此,垃圾收集器將立刻運行。缺省值是1024。gc
base_reachable_timeim
設置arp緩存的老化時間,默認是30s配置文件
=================================
好比arp -an|wc -l的結果是300左右, 那麼應當調高gc_thresh各項數值,防止抖動的發生:數據
個人值是692,固然要調整了!!
命令以下:
echo "512" > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo "2048" > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo "4096" > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo "60" > /proc/sys/net/ipv4/neigh/eth0/base_reachable_time
echo "120" > /proc/sys/net/ipv4/neigh/default/gc_stale_time
也能夠寫入內核配置文件中
# vim /etc/sysctl.conf
在sysctl.conf最後面寫入下面三行,以下
net.ipv4.neigh.default.gc_thresh1 = 512
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.eth0.base_reachable_time = 60
net.ipv4.neigh.default.gc_stale_time = 120
下面這句的做用是:當有個多個網卡,每一個網卡在不一樣的網段,那麼能夠過濾掉非本網卡ARP請求的迴應;可是若是多個網卡的ip在一個網段,那麼就不行了。
net.ipv4.conf.all.arp_filter = 1