当前位置: 网学 > 编程文档 > MySQL > 正文

对付 MySQL 的死连接,Sleep的进程的来源探究

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/02
是否成功)MySQL 服务器的连接数。Max_used_connections 服务器启动后已经同时使用的连接的最大数量。2.set GLOBAL max_connections=连接数;flush privileges3.修改/etc/my.cnf中的max_connections4.show processlist 显示当前正在执行的mysql 连接5.mysqladmin -u -p -h status显示当前mysql 状态Uptime: Threads: 1 Questions: 22 Slow queries: 0 Opens: 16 Flush tables: 1 Open tables: 1 Queries per second avg: 0.1mysqladmin -u -p -h extended-status显示mysql 的其他状态+-----------------------------------+----------+| Variable_name | Value |+-----------------------------------+----------+| Aborted_clients | 0 || Aborted_connects | 1 || Binlog_cache_disk_use | 0 || Binlog_cache_use | 0 || Bytes_received | 1152 || Bytes_sent | || Com ...... netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key""state[key]}' 会得到类似下面的结果,具体数字会有所不同: LAST_ACK 1SYN_RECV 14ESTABLISHED 79FIN_WAIT1 28FIN_WAIT2 3CLOSING 5TIME_WAIT 1669 状态:形容CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTABLISHED:正常数据传输状态FIN_WAIT1:应用说它已经完成FIN_WAIT2:另一边已同意释放ITMED_WAIT:等待所有分组死掉CLOSING:两边同时尝试关闭TIME_WAIT:另一边已初始化一个释放LAST_ACK:等待所有分组死掉 也就是说,这条命令可以把当前系统的网络连接状态分类汇总。 下面解释一下为啥要这样写: 一个简单的管道符连接了netstat和awk命令。 ------------------------------------------------------------------ 先来看看netstat: netstat -n Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 123.123.123.123:80 234.234.234.234: TIME_WAIT 你实际执行这条命令的时候,可能会得到成千上万条类似上面的记录,不过我们就拿其中的一条就足够了。 ------------------------------------------------------------------ 再来看看awk: /^tcp/滤出tcp开头的记录,屏蔽udp socket等兽关记录。 state[]相当于定义了一个名叫state的数组 NF表示记录的字段数,如上所示的记录,NF等于6 $NF表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT state[$NF]表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数 ++state[$NF]表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一 END表示在最后阶段要执行的命令 for(key in state)遍历数组 print key""state[key]打印数组的键和值,中间用制表符分割,美化一下。 如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,vim /etc/sysctl.conf编辑文件,加入以下内容:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30然后执行 /sbin/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 表示开
  • 下一篇资讯: 杀mysql sleep 进程的脚本
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号