MySQL sleep线程过多如何解决?

什么是sleep线程? sleep线程长时间保持可客户端与服务端的连接状态 导致sle

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

相关推荐

  • MySQL sleep线程过多如何解决?

    什么是sleep线程&#xff1f; sleep线程长时间保持可客户端与服务端的连接状态 导致sle

    2023-8-2
    100

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信