- 论坛徽章:
- 0
|
背景:
在做项目时遇到一个在大量的并发网络连接时出现了"too many open files"的错误,最后找到可能的原因,系统对打开的socket不能及时释放,于是调整一些系统运行时对TCP/IP的设置可能会解决此问题.只是可能,还没最终测试,但设置的方法倒值得一学,且对今后也会有用处.
正文:
/proc/sys/net/ipv4 目录
缺省值:
tcp_fin_timeout 180
tcp_keepalive_time 7200
tcp_window_scaling 1
tcp_sack 1
tcp_timestamps 1调整值:
第一种方法:将下面的设置添加到/etc/sysctl.conf,然后重启网络(sysctl.conf是对内核参数的一些设置)
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 30
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
# Turn off tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0
#Turn off tcp_timestamps
net.ipv4.tcp_timestamps = 0
第二种方法:向/etc/rc.local添加如下代码
echo "30">/proc/sys/net/ipv4/tcp_fin_timeout
echo "1800">/proc/sys/net/ipv4/tcp_keepalive_time
echo "0">/proc/sys/net/ipv4/tcp_window_scaling
echo "0">/proc/sys/net/ipv4/tcp_sack
echo "0">/proc/sys/net/ipv4/tcp_timestamps
参考:
通过调整Linux TCP参数 提示服务器性能
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48467/showart_465376.html |
|