前一段时间我的小博客出现了卡死的情况,用宝塔面板看监控,主要是内存被占满了导致的,这里主要介绍下我排查问题的方法和解决方案。

排查问题

如果出现特别卡的情况,VPS其实和电脑一样,肯定是CPS,内存,IO哪个被占用满了。可以通过宝塔这种面板的监控或者你使用的VPS服务商的管理工具。像下面的情况,就是内存被占用满了导致的。我的小博客流量并不大的,所以肯定是哪里配置有问题。

这里介绍一个很好用的命令:top

Top命令我感觉有点像Windows里面的任务管理器,上半部分会显示整体的性能情况,下面是进程的资源占用情况。这个命令默认显示的是cpu密集型的进程,并且每5秒钟更新一次。

这里主要关注%CPU,%MEM两列,即CPU和内存占用率。

进入top命令后点击M可以按内存占用排序,P按CPU占用排序,q退出top命令(主要大小写!!!)。

更详细的top命令说明可以参考:https://www.cnblogs.com/zhoug2020/p/6336453.html

这里可以看到php-fpm占用很高,之前mysqld也很高的,这两分别就是PHP和MySQL的进程了。

解决方案

如果你使用的是宝塔面板,配置还是挺简单的。

宝塔面板首页就可以看到运行中的MySQL和PHP,点击图标就可以进入配置页面。

宝塔内置的就有一些推荐配置。

比如MySQL按照你的内存情况选择优化方案,然后保存重启就好了。

PHP也是类似的,这里可以简单算一下,一个php-fpm进程占用大概5%左右,那么max_children*5差不多是php-fpm占用的最大内存占比了。不过也不能设置的太小,那样PHP就会跑的比较慢。

min_spare_severs是平时空闲的时候待命的进程数,设置的太小了,有访问的时候就需要重新起进程,拖慢速度。

更详细的可以参考:https://www.centos.bz/2018/03/php-fpm%E8%BF%9B%E7%A8%8B%E8%BF%87%E5%A4%9A%EF%BC%8C%E5%86%85%E5%AD%98%E8%80%97%E5%B0%BD/

如果你不是用的宝塔面板,就需要手动去找到MySQL和PHP的配置文件修改这些参数了。

别忘了重启服务。

除非注明,否则均为Troy小法师原创文章,转载必须以链接形式标明本文链接

本文链接: https://www.troyqi.com/archives/608/网站突然很慢,vps内存占满了怎么办/