对于使用宝塔面板的用户来说,当使用MySQL数据库进行数据操作时可能会出现内存占用过高的问题,导致服务器负载增加,访问速度变慢,甚至出现宕机的情况。这是一个十分常见的问题,需要及时解决。
当宝塔内存占满100%的时候,我们首先需要找到问题的原因,是什么情况导致,程序性能、服务器负载能力、并发访问、木马病毒、被植入了挖矿程序等等,首先我们通过文件>终端>登录后输入 top,查询占用率,一般我们比较关注php-fpm,mysqld,这两个应用。
问题的出现
以下截图是内存爆满后导致服务器无法正常登录重启后一段时间的监控数据:来源于阿里云云监控
同时我们通过SSH链接服务器,通过命令:free -h
查看内存占用情况(如果您的服务器内存爆满,该命令应该使用不了,建议重启后使用!)
备注:free -h是一个Linux终端命令,用于显示系统内存使用情况。这个命令可以告诉用户系统中多少内存被使用了,多少可用的内存,以及交换空间的使用情况。
上面查看完成之后,大致了解内存的占用情况,但是不知道是具体什么应用占用较大的内存,所以我们使用命令:htop
,查看具体的应用程序占用,但是还需要快捷键“shift+M”给进程排个序,如下截图。
从上面截图大致了解,是MySQL数据导致内存占用过满!如果内存占用过高的问题已经出现,需要及时采取措施进行解决。
解决内存占用过高
先看下宝塔官方的标准回答,如下问:
本人解决方法有如下几个:(既然是显示MySQL导致的问题,就从数据库入手)
- 步骤一:把服务器上的MySQL暂停,暂停后确实看到内存下降;
- 步骤二:暂停MySQL明显不可行,导致网站无法访问,所以考虑将数据库迁移;考虑的平台是西部数码;(因为他们提供单独的mysql,重点也是便宜,起步:80元/年)
- 步骤三:同时也发现网站数量增加,内存会明显增加,所以优化网站也是必须。
- 步骤四:优化配置。
优化配置
第一点:使用宝塔面板可视化MySQL配置:
软件商店–找到MySQL — 设置–找到性能调整。可以根据你主机的配置,选择宝塔提供的优化方案。(如果服务器只有4GB内存,宝塔官方建议选择2-4GB优化方案)
第二点:CDN的配置优化
第三点:网站流量限制(具体参数应该可以更小)
第四点:Wordpress的优化
MySQL内存占用过高是一个常见的数据库问题,需要及时解决。对于已经出现的问题,需要找出原因,并采取相应的措施进行解决。同时,还需要采取预防措施来避免这种问题的出现。
所有设置完成后,内存会降下来很多,再继续观察…
第五点:PHP设置,适当限制php并发(具体参数应该可以更小)
软件商店–找到 PHP-7.4–设置,找到性能调整,我的服务器是2核4G内存,可以参考下我的设置。强烈建议把后一项的值 max_spare_servers 改成 15,修改过对内存占用影响也是蛮大的。
第六点:增加虚拟内存
参靠网站:https://www.iyunying.org/zha/307738.html