让那些mysql里睡觉的进程,悄悄的死去吧。
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,公司日本租用了阿里云机器 本身有网络延迟,有一台Linux服务器专门用来跑游戏服务,由于历史原因,加上玩家数量的剧增,导致经常出现大量的sleep进程;沾上一个脚本用来杀掉sleep进程:while
千家信息网最后更新 2025年01月21日让那些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 秒 执行一次 done
MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到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安全错误
数据库的锁怎样保障安全
软件开发提供住宿吗
初中毕业5年制网络技术
做了登录界面怎么连接数据库
关于网络安全班会主题内容
网络安全防范意识动画
方舟非主机服务器名字是什么
百炼数据库的特点
维普考试数据库官网
光遇国际服服务器登录失败
手机数据库坏了怎样修复
pb软件开发是什么
自动化软件开发优势
2网络安全
开发者服务器接口地址
北京金嘉鸿达网络技术
数据库事务处理借阅系统
退役人员数据库
中山软件开发排行榜
软件开发的需要画架构图吗
dota2 服务器协调
朝阳区木曼网络技术服务工作室
网站如何访问数据库文件夹
互联网软件开发求职
支付宝支付软件开发
网络安全立法历史
朔州人社局网络安全
华为网络安全相关知识
如何建立excel服务器
2021国家网络安全宣传周是
江苏web前端软件开发怎么样