# Linux宝塔面板mysql高负载,负载100%网站缓慢解决方法，自动重启mysql的shell脚本

*Published:* 2018-03-15
*Author:* 伯乐建站

[![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)![](https://pic.rmb.bdstatic.com/bjh/03dd46083a15ef2e08fec5fe7604e552.png)](https://pic.rmb.bdstatic.com/bjh/03dd46083a15ef2e08fec5fe7604e552.png)

宝塔服务器面板cpu、负载都是100%，一般来说这种问题的可能性很多，有可能是程序性能、服务器负载能力、并发访问、木马病毒、被植入了挖矿程序等等，但是这四个问题可能引起宝塔面板CPU占满100%，负载100%网站缓慢，下面是四个问题的解决方法。

初步来说首先考虑使用 top 查看一下当前的负载情况，使用SHELL工具连接到命令行操作界面，或通过宝塔面板-&gt;文件 点击终端进入命令行操作也可。

[![1553269223563146.jpg](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== "1575298924559814.jpg")![1553269223563146.jpg](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575298924559814.jpg "1575298924559814.jpg")](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575298924559814.jpg "1575298924559814.jpg")

进入终端后，输入top查看一下负载情况，如下图：

[![1553269293397729.jpg](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== "1575299003233477.jpg")![1553269293397729.jpg](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575299003233477.jpg "1575299003233477.jpg")](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575299003233477.jpg "1575299003233477.jpg")

1.MYSQL 问题, 仔细看发现主要是mysql的占用比较严重，根据负载情况可知，面板的主要负载应该发生在mysql的读写，用户的访问先不考虑，首先考虑mysql的性能问题，根据截图来判断一下。  
[![1553269457575745.jpg](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== "1575299206315884.jpg")![1553269457575745.jpg](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575299206315884.jpg "1575299206315884.jpg")](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575299206315884.jpg "1575299206315884.jpg")

尝试计划任务添加以下shell脚本自动重启mysql服务（根据负载状态重启）

```shell

#+------------------------------------
#+ 宝塔根据负载重启mysql脚本
#+------------------------------------
 
# $1 = 1min, $2 = 5min, $3 = 15min
loadavg=$(cat /proc/loadavg|awk '{printf "%f", $1}')
maxload=65
if [ $(echo "$loadavg > $maxload"|bc) -eq 1 ]; then
log="重启mysql!"
echo "★ $log 负载$loadavg"
	/etc/init.d/mysqld reload	
fi 
sync
sleep 2
sync
echo 3 > /proc/sys/vm/drop_caches

```

查看了一下效果：

[![QQ截图20191202230851.jpg](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== "1575299379590281.jpg")![QQ截图20191202230851.jpg](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575299379590281.jpg "1575299379590281.jpg")](https://www.lailiyun.com/uploadfile/ueditor/image/20191202/1575299379590281.jpg "1575299379590281.jpg")

负载确实降下来了，朋友们若是遇到此类问题，若是mysql占用的情况较为明显，可以考虑采用此脚本尝试 !!!!

ps：计划任务设置每五分钟执行一次，脚本也是检测的最近五分钟的负载状态