记录一次个人服务器的运维事故

2024-08-10 09:17:43 浏览数 (1)

这台服务器用了好几年了,阿里云轻量2h2g(没错,就是这样)。

先来给大家看看这次的服务器监控吧。

在之前的几个小时,大家也可以看到负载基本满载,处理之后舒服了。

先来说说具体的事故发生:

前景:

最近个人在做一款AI应用,其中支付服务我用的node express mongodb实现,部署到了这台服务器上(穷鬼只有这一台),正式因为我这台机子比较小,所以我选择以一种新的方式来做,类似边缘计算,把AI调用全部放到客户端进行实现,在调用的过程中进行扣费,扣费的过程通过公私钥加密传输(防止劫持 伪造攻击)。

事故发生

事情从8.5凌晨发生,当时醒来,服务器突然进不去了,但是服务器(阿里云)账号登录权限在同学那(我和同学之前就为了卡个学生优惠,我的号在大学之前就弄过了qwq),总不可能半夜把别人叫醒吧,中间好几次成功进去了,就直接开始排查(有时候又被卡退)。

事故分析

进入Shell直接top/ps一套,然后发现,怎么一大堆php进程占用很高。

这个图是解决之后的了,当时看的时候整整一页都是php-fpm,既然要解决问题,那么肯定是要找问题的引发原因。

所以我找了几分钟,发现了个问题。

在现在新的宝塔版本中,出了专门部署html项目的选项,在早期的时候,宝塔快速部署只支持php,所以我好几些html的静态页面,为了方便是直接部署到php的,所以这里我做了个迁移。

但是负载还是很高。

于是我把大多数的php全在界面上停止了,只留了博客和在开发的项目。

继续top也是一样的效果。

事故解决

所以我就一刀切

代码语言:bash复制
killall -9 php-fpm # 或者pkill php-fpm

直接全部kill,然后手动重启php服务即可。

这是最近几日,可以看到回归正常,但是可以在图中看到,今天又出现了异常

这里出现异常应该适合我手动启动一个项目,并且进行install有关(安装的kodcloud),然后php-fpm启动子进程,但是这启动的有点多了吧。

既然启动的这么多,那么一定可以设置(没主动用过php进行开发,哈哈哈,对php的了解比较少,大多php开发都是基于原本的代码进行的二开)

来说说怎么设置吧,参考文章:https://cloud.tencent.com/developer/article/1796128

代码语言:bash复制
vim /etc/php-fpm.d/www.conf

设置 pm.max_children 字段即可

对于宝塔的jrm,可以直接在面板里面修改

设置一下就行了。

除此之外,还推荐大家一个工具:htop,感兴趣的大家可以自行去了解一下。

0 人点赞