什么是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