MySQL sleep线程过多如何解决?
什么是sleep线程?
sleep线程长时间保持可客户端与服务端的连接状态
导致sleep过多的原因:
使用太多持久连接(高并发系统中 不适合使用持久连接)
程序中 没有及时关闭MySQL连接
数据库优化不完善 导致执行sql语句过慢
解决方法:
vim /etc/my.cnf 配置文件里进行配置 下次需从启服务器的时候直接生效
想当时就生效利用直接在数据库里设置
show global variables like '%wait_timeout%'; # 查看关闭超时时间set global wait_timeout = 3600 全局生效
set wait_timeout = 3600 临时生效interactive_timeout = 3600 #<==此参数设置后wait_timeout自动生效。
wait_timeout = 3600 设置MySQL的睡眠连接秒数 系统默认是8小时
mysql批量杀死sleep进程
#kill_sleep.sh
#mysql批量杀死sleep进程
#!/bin/bash
MYSQL_OPT="/usr/bin/mysql -uroot --socket=/var/lib/mysql/mysql.sock -ppro#pateo"
DIR="/tmp"
$MYSQL_OPT -e "show processlist;"|awk '{print $1,$5}'|grep 'Sleep'|awk '{print "kill",$1";"}' > $DIR/sleep_pid.log
$MYSQL_OPT -e "source $DIR/sleep_pid.log;"
exit 0
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690931031a466649.html
评论列表(0条)