Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT套接字数量。
  
vi /etc/sysctl.conf

  增加以下几行:
引用
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024    65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

  说明:
  net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
  net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
  net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
  net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
  net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
  net.ipv4.ip_local_port_range = 1024    65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
  net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
  net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

  执行以下命令使配置生效:
/sbin/sysctl -p


Tags: , , ,



技术大类 » Cache与存储 | 评论(83) | 引用(0) | 阅读(75240)
zhiqin Homepage
2008-4-14 13:01
您好,我想申请您BLOG的一个友情连接
您的连接我已经添加 编号为103

以下是我的信息:
地址:Http://Zhiqin.32o.Cn
名称:不许联想
说明:不许联想
 
 希望能通过,谢谢!
ideawu Homepage
2008-4-14 17:46
关注. 你现在在哪工作了?
test
2008-4-14 18:16
关注
同问
xooass Email Homepage
2008-4-14 20:25
请问如果普通服务器也使用以上的参数  会不会有副作用呢?
simon
2008-4-15 03:17
其实 对于高负荷服务器
有少许优化
效果 不是特别好
johnzw
2008-4-15 09:40
貌似这几万的time wait里真实的等待连接并不多吧,我估计有很大一部分应该是废连接,没有收到FIN请求。本地对外端口感觉 2w就可以了,太多没什么大的意义吧,SYN队列长度不是越大越好,增大内存开销。其实还是要看系统每秒能处理完多少个tcp session,然后适当调整SYN。
wf
2008-4-15 13:57
有些笼统, 区分TIME_WAIT和半连接洪水攻击是有必要的.
steven
2008-4-15 17:36
你好,想请教一个问题,我现在有十几台linux 服务器。有什么好的方法能统一管理这些服务器的系统日志
张宴 回复于 2008-4-15 18:09
是Web服务器的访问日志吗?
niu
2008-4-17 01:21
to steven:
系统日志 ? syslog
dd_macle
2008-4-18 11:43
现在每天养成习惯了,都要来这里学习学习。。。。。
cnhawk Homepage
2008-4-22 19:05
net.ipv4.tcp_max_tw_buckets = 5000
这个参数值得商讨一下吧
等于系统只有5000个timewait的空位,可是稍微繁忙点系统这个数值就过了
张宴 回复于 2008-5-8 13:00
一般情况下,可以增加到20000或30000,再高系统可能会被拖死。
sbear Homepage
2008-5-7 18:12
好像改这个参数没用的,要去改内核代码重新编译才行,这个内核参数改完没效果的。
asion
2008-12-7 14:12
请问张师傅, SQUID 能否缓存或代理  .net 的伪静态程序 如
list.html?id=1
list.html?id=2  之类的。
现在有个项目使用.net 2.0 做的伪静态,但list.htm 经人恶性访问,造成cpu 占用过高。 想在前端加SQUID 做代理和缓存。但不知道 squid 能否支持? 谢谢
swordinhand
2011-7-26 16:27
http://www.linuxinsight.com/proc_sys_net_ipv4_tcp_max_tw_buckets.html,这里面说tcp_max_tw_buckets不应该小于180000啊
evil
2011-9-22 09:48
我想问个问题..公司的架构是这样的.最前端负载为F5 之后有haproxy根据请求域名做动静分离今天登陆haproxy后查看TIME_WAITE有7W多个..您所说的这些内核参数我都已经修改了.但起不到什么效果..请问这如何解决呢..?
baijun1877 Email Homepage
2011-9-22 19:57
一楼的位置好啊..,瘦脸的方法
dfwqk389943 Email
2011-11-26 10:41
这个很好了,顶
coach outlet online Email Homepage
2011-12-8 11:18
As a perfect combination of classic and modern fashion, coach outlet online can show the customers'unique personality.if your dream is to look like a million bucks for a mere several dollars, then our coach outlet store is the Jiminy Cricket of your existence.
coach outlet online Email Homepage
2011-12-8 11:19
As a perfect combination of classic and modern fashion, coach outlet online can show the customers'unique personality.if your dream is to look like a million bucks for a mere several dollars, then our coach outlet store is the Jiminy Cricket of your existence. http://www.coachoutletonlineworld.com
coach outlet online Email Homepage
2011-12-8 11:19
As a perfect combination of classic and modern fashion, coach outlet online can show the customers'unique personality.if your dream is to look like a million bucks for a mere several dollars, then our coach outlet store is the Jiminy Cricket of your existence. http://www.coachoutletonlineworld.com
分页: 1/5 第一页 1 2 3 4 5 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]