让那些mysql里睡觉的进程,悄悄的死去吧。
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,公司日本租用了阿里云机器 本身有网络延迟,有一台Linux服务器专门用来跑游戏服务,由于历史原因,加上玩家数量的剧增,导致经常出现大量的sleep进程;沾上一个脚本用来杀掉sleep进程:while
千家信息网最后更新 2026年11月02日让那些mysql里睡觉的进程,悄悄的死去吧。
公司日本租用了阿里云机器 本身有网络延迟,有一台Linux服务器专门用来跑游戏服务,由于历史原因,加上玩家数量的剧增,导致经常出现大量的sleep进程;

沾上一个脚本用来杀掉sleep进程:
while : do n=`mysql -uroot -pfuckdba processlist | grep -i sleep | wc -l` date=`date +%Y%m%d\[%H:%M:%S]` echo $n if [ "$n" -gt 10 ] then for i in `mysqladmin -uroot -pfuckdba processlist | grep -i sleep | awk '{print $2}'` do mysqladmin -uroot -pfuckdba kill $i done echo "sleep is too many i killed it" >> /root/tmp/sleep.log echo "$date : $n" >> /root/tmp/sleep.log fi sleep 120 #每隔120 秒 执行一次 doneMySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL Server处理完相应的操作后,应该断开连接并释放占用的内存。如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误。对于wait_timeout的值设定,应该根据系统的运行情况来判断。在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,可以进行适当的调整小些。
经查询发现原来mysql没有进行过优化,还是原来的默认值:28800(即8个小时)
编辑 /etc/my.cnf,在mysqld 下 新增 timeout参数,设置为120秒,如下:
【mysqld】
wait_timeout=120
interactive_timeout=120
注意:要同时设置interactive_timeout和wait_timeout才会生效。
经过测试服测试完全没问题,重启一下mysql 生效 即可!当然线上的就比较坑了,由于服务器第一天租到,第二天就开始上线没来得及优化,很多台里面只有一条,执行命令比较慢,就等着下次替换文件重启了。
服务
进程
内存
服务器
系统
上限
参数
命令
状态
测试
消耗
运行
最大
适当
公司
历史
原因
只有
可以通过
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东猪兼强互联网科技有限公司
互联网科技网
互联网下的科技发展
互联网科技战争
互联网金融 科技
华中科技大学互联网
深圳天众互联网科技公司
赫美联合互联网科技
上游互联网科技
掌上梦互联网科技
美国互联网前沿科技
成都仁贤领冠互联网科技有限公司
互联网科技公司的市场部门
北京三清互联网科技
互联网科技博主是什么意思
互联网教育科技公司vipkid
互联网科技人工智能实验室
美国互联网科技实力
互联网科技数字货币
互联网科技职业技能培训学校
华服互联网科技靠谱吗
互联网金融 科技创新
互联网科技汛
卓越科技互联网 招聘
博兴的互联网电子科技公司
团飞科技与伯堂互联网服务平台
汽车互联网创新科技园
互联网科技和法律行业
华人运通互联网科技公司
优雇互联网科技有限公司