linux维持长连接调优

由于linux内核的限制,files open too many是一个常见的问题
修改/etc/sysctl.conf文件

net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_timestamps = 0
net.ipv4.ip_local_port_range = 1024 65000
fs.file-max=655360
net.netfilter.nf_conntrack_max = 798641


以上参数存在/proc/sys/下的相应目录

引用
目前,大多的 ip_conntrack_* 已被 nf_conntrack_* 取代,很多 ip_conntrack_* 仅仅是个 alias,原先的 ip_conntrack 的 /proc/sys/net/ipv4/netfilter/ 依然存在,但是新的 nf_conntrack 在 /proc/sys/net/netfilter/ 中

引用
file-max是设置 系统所有进程一共可以打开的文件数量
/proc/sys/fs/file-max


引用

ip_conntrack 是Linux NAT一个跟踪连接条目的模块记录着允许的跟踪连接条目ip_conntrack 模块会记录 tcp 通讯协议的 established connection 记录, 而且预设 timeout 时间长达五天 (432,000 秒).所以局域网中当有人使用p2p类的软件就很容易使ip_conntrack达到最大值...也由此造成。
echo "3600" > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established



/etc/security/limits.conf
*    soft    nofile  1000000  
*    hard    nofile  1000000 

引用
ulimit作用:即设置当前shell以及由它启动的进程的资源限制



引用

1.验证某个进程的限制

# ps -ef |grep nginx

将得出的PID XXX带入下面

#cat /proc/XXX/limits

查看Max open files 那一行

2.验证系统级别的限制

# ulimit -n

3.验证内核级别的限制

#cat /proc/sys/fs/file-max





猜你喜欢

转载自ontheroad-luckhouge.iteye.com/blog/2357558