全部博文(27)
2008年(27)
分类: LINUX
2008-10-23 13:22:22
解決方法 (1): 加大 ip_conntrack_max 值
查出原本的 ip_conntrack_max 值:
指令: cat /proc/sys/net/ipv4/ip_conntrack_max寫入理想的數值 (每一個 ip_conntrack buffer 會佔用 292 Bytes)
指令: echo "數值" > /proc/sys/net/ipv4/ip_conntrack_max
例如: echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max
這個效果是暫時的, 如果要每次開機都使用新的數值, 需將上述指令寫入 /etc/rc.d/rc.local
或是在 /etc/sysctl.conf 加入: net.ipv4.ip_conntrack_max = 數值
或使用指令: sysctl -w net.ipv4.ip_conntrack_max=數值
解決方法 (2): 降低 ip_conntrack timeout 時間
重設 ip_conntrack_tcp_timeout_established (原值: 432000, 單位: 秒)
指令: echo "數值" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
例如: echo "600" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established開機自動設置的作法同方法(1).
其他相關指令:
查看目前 ip_conntrack buffer 使用狀況
指令: grep conn /proc/slabinfo結果實例: ip_conntrack 3024 4090 384 409 409 1 (各值說明如下)
ip_conntrack the cache name 3024 the number of currently active objects 4090 the total number of available objects 384 the size of each object in bytes 409 the number of pages with at least one active object 409 the total number of allocated pages 1 the number of pages per slab are given man slabinfo 可查詢詳細說明.
查出目前 ip_conntrack 記錄最多的前五名 IP
指令: cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 5結果實例:
2816 192.168.1.100 14 163.30.85.129 6 220.132.142.175 6 127.0.0.1 4 218.187.5.223 由此可知, 192.168.1.100 佔用了絕大多數的 buffer, 推斷這個 IP 的 User 可能使用了 P2P 軟體.
另查了几个参数给参考:
1.尽量用/dev/shm来放数据;
2.开启了arp代理 (这个我是从某个国外站看的,说的是看了后效率更好!??)
3.#可以改变滑动窗口的大小
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
4.修改内核共享内存限制为256M,默认是32M
echo 268435456 >/proc/sys/kernel/shmall
echo 268435456 >/proc/sys/kernel/shmmax
5。#可使用的代理端口
echo "1024 65000" > /proc/sys/net/ipv4/ip_local_port_range
6。#刷新flush参数
echo "100 1200 128 512 15 5000 500 1884 2">/proc/sys/vm/bdflush
7.#禁止广播和ping入
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses