新進一家公司,公司有2台NAT服務器,系統FC2,2.6.9的內核,平時都正常,但是每隔一段時間就出現異常,察看日至裡面都是dst cache overflow,後來將ip_conntrack_max調大一倍,ip_conntrack_tcp_timeout_established的時間調成半天,可是效果還是不明顯,有時還是會發生dst cache overflow的情況。請問有辦法解決嗎?謝謝!
解決辦法:
1. 看看是否有啥特殊的 ip 大量連線。
cat /proc/net/ip_conntrack
那個檔案閱讀不方便,需要更好閱讀格式,請安裝 netstat-nat。
http://tweegy.demon.nl/projects/netstat-nat/
CODE:[Copy to clipboard][root@nat ~]# netstat-nat -n
Proto NATed Address Foreign Address State
tcp 192.168.1.111:1035 207.46.6.116:1863 ESTABLISHED
tcp 192.168.1.111:2965 61.56.213.27:80 TIME_WAIT
tcp 192.168.1.111:2964 220.130.132.195:443 TIME_WAIT
tcp 192.168.1.111:2971 220.130.132.53:110 TIME_WAIT
tcp 192.168.1.129:1773 65.54.194.118:80 ESTABLISHED
tcp 192.168.1.129:1042 207.46.6.51:1863 ESTABLISHED
tcp 192.168.1.129:1055 211.78.161.178:80 ESTABLISHED
tcp 192.168.1.129:1774 65.54.194.118:80 ESTABLISHED2. 看一下 kernel 內 slab 相關資訊是否有滿載情況。
CODE:[Copy to clipboard]$ cat /proc/slabinfo |grep conntrack
ip_conntrack_expect 0 0 84 47 1 : tunables 120 60 0 : slabdata 0 0 0
ip_conntrack 40 160 248 16 1 : tunables 120 60 0 : slabdata 10 10 0
CODE:[Copy to clipboard]$ cat /proc/slabinfo | grep ip_dst_cache
[root@lc168 ~]# cat /proc/slabinfo | grep ip_dst_cache
ip_dst_cache 222 390 256 15 1 : tunables 120 60 0 : slabdata 26 26 03. 另外使用 slabtop 程式觀察一下 cache 量。一般畫面為:
CODE:[Copy to clipboard] Active / Total Objects (% used) : 457888 / 479487 (95.5%)
Active / Total Slabs (% used) : 8868 / 8891 (99.7%)
Active / Total Caches (% used) : 82 / 123 (66.7%)
Active / Total Size (% used) : 32196.01K / 34882.93K (92.3%)
Minimum / Average / Maximum Object : 0.01K / 0.07K / 128.00K
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
366346 366222 99% 0.02K 1621 226 6484K fasync_cache
33611 29188 86% 0.13K 1159 29 4636K dentry_cache
29856 29151 97% 0.48K 3732 8 14928K ext3_inode_cache
13800 6581 47% 0.05K 184 75 736K buffer_head4. 看一下 /proc/sys/net/ipv4/route/max_size 內容配置。
CODE:[Copy to clipboard]cat /proc/sys/net/ipv4/route/max_size==
摘自:chinaunix.net