我们如何杀死mysql睡眠过程喜欢:
+------+-----------+-----------+------------------------+---------+------+----------------+-------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+-----------+-----------+------------------------+---------+------+----------------+-------------------------------------------------------------------------------------------+
| 2477 | stageuser | localhost | jj_production_11102013 | Query | 0 | end | SELECT * FROM wp_comments WHERE blog_id = 1071 ORDER BY comment_date_gmt DESC LIMIT 0, 50 |
| 3050 | stageuser | localhost | jj_production_11102013 | Query | 0 | Sorting result | SELECT * FROM wp_comments WHERE blog_id = 1071 ORDER BY comment_date_gmt DESC LIMIT 0, 50 |
| 3052 | stageuser | localhost | jj_production_11102013 | Sleep | 336 | | NULL |
| 3056 | stageuser | localhost | NULL | Query | 0 | NULL | show processlist |
| 3057 | stageuser | localhost | jj_production_11102013 | Sleep | 301 | | NULL |
| 3058 | stageuser | localhost | jj_production_11102013 | Sleep | 299 | | NULL |
| 3059 | stageuser | localhost | jj_production_11102013 | Sleep | 298 | | NULL |
| 3061 | stageuser | localhost | jj_production_11102013 | Sleep | 273 | | NULL |
| 3068 | stageuser | localhost | jj_production_11102013 | Sleep | 251 | | NULL |
| 3072 | stageuser | localhost | jj_production_11102013 | Sleep | 233 | | NULL |
| 3111 | stageuser | localhost | jj_production_11102013 | Sleep | 1 | | NULL |
+------+-----------+-----------+------------------------+---------+------+----------------+-------------------------------------------------------------------------------------------+
11 rows in set (0.00 sec)
这个睡眠过程会影响网站性能,就像其他查询速度慢吗
4 回答
我做到了 .
创建kill_sleep.sh文件
并将kill_sleep.sh设置为cron作业 .
Vishal 's answer works well if you'在MySQL服务器上运行该命令,但它赢得了't work if you'远程连接到服务器,或者如果您没有权限运行SOURCE或
SELECT ... INTO OUTFILE
(例如,亚马逊's RDS). It'可能会重写它不依赖于这些功能虽然,然后它可以在任何地方工作:语法是:
在你的情况下:
但是为了删除所有的睡眠进程,不能使用一个命令,在获取tmp表中的所有进程并循环遍历之后,需要遍历整个进程列表:
来自here
Percona工具:
这将找到所有处于“睡眠”状态并且空闲100秒或更长时间的连接并将其终止 . --interval 30将使它每30秒继续这样做 . 所以你可以打开一个屏幕-S ptkill然后在那个屏幕上运行上面的命令,然后ctrl-A,D分离并退出终端,它将继续运行清理你的连接 .
https://www.percona.com/doc/percona-toolkit/2.1/pt-kill.html