监控安装 ERP

系统集成论坛

 找回密码
 注册通行证

QQ登录

只需一步,快速开始

路由器交换机防火墙系统集成商城 优质产品采购平台
查看: 1367|回复: 1
打印 上一主题 下一主题

mysql出现大量TIME_WAIT连接的解决方法

[复制链接]
跳转到指定楼层
1
发表于 2013-1-18 17:32:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
华为金牌代理
今天发现网站突然无法访问,登陆webserver已经无法连接mysql,转战mysql一看,发现竟然有三千多个TIME_WAIT连接,擦,被SYN攻击了?百度&&google,发现通过修改内核可以解决。

解决办法
#vi /etc/sysctl.conf,在文件最后加入如下内容
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
#sysctl -p   //使修改内核生效

选项解释
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   //修改系統默认TIMEOUT时间.




设置后OK了,mysql的链接数正常了,但是webserver还是无法连接mysql,访问页面提示
Host 'IP' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts' 查询后发现,是因为webserver连接mysql过多,别mysql给block了,呵呵,用它提示的命令改下吧
mysqladmin flush-hosts -h IP -uroot -p
OK,页面可以打开了~

==================================过了一会=====================又不能访问了=======================

各种查,各种学,各种改,so~so~貌似是连接数的问题。
好,先改mysql的,在my.ini中添加
max_connections=1000
然后看看java跟数据库的连接打开数
proxool.xml
最小连接数
<minimum-connection-count>20</minimum-connection-count>
最大连接数
<maximum-connection-count>500</maximum-connection-count>
一次性最大创建并发连接数
<simultaneous-build-throttle>400</simultaneous-build-throttle>


好了,页面正常打开了~
2
 楼主| 发表于 2013-1-18 17:35:52 | 只看该作者
华为金牌代理
Windows服务器

TIME_WAIT是TCP协议用以保证被重新分配的socket不会受到之前残留的延迟重发报文影响的机制,是必要的逻辑保证.
      在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,添加名为TcpTimedWaitDelay的
DWORD键,设置为60,以缩短TIME_WAIT的等待时间
我分享,我成长!系统集成 XTJC.COM
您需要登录后才可以回帖 登录 | 注册通行证

本版积分规则

联系我们| 手机版|系统集成论坛 ( 京ICP备11008917号 )

GMT+8, 2024-11-18 23:00 , Processed in 0.114505 second(s), 24 queries .

系统集成论坛

BBS.XTJC.COM

快速回复 返回顶部 返回列表