12月04, 2017

记一次磁盘占满导致PM2无法启动事故

今早来到公司,日常查看一下博客,居然发现博客502了,记录一下查找问题并重启程序的过程。

alt

意识到应该是NODE服务挂了,登录ECS一看,一顿命令打下来(其实就是pm2 ls),果然,pm2守护进程都不见了,只报给了我一个[PM2] Spawning PM2 daemon with pm2_home=/home/xxx/.pm2,然后就没有然后了。

磁盘空间占满

一顿谷歌后,发现有不少网友也遇到了这个问题,其原因是服务器磁盘空间被占满,导致了PM2的守护进程无法启动。验证一下。

df -h

文件系统        容量  已用  可用 已用% 挂载点
/dev/vda1        40G  38G   0   100% /
devtmpfs        910M     0  910M    0% /dev
tmpfs           920M     0  920M    0% /dev/shm
tmpfs           920M  420K  920M    1% /run
tmpfs           920M     0  920M    0% /sys/fs/cgroup
tmpfs           184M     0  184M    0% /run/user/1003

果然,整个服务器的磁盘都被占满了,赶紧找找看哪里的日志把空间占满。

查找大文件

日志被写满,无外乎是nginx、数据库和程序产生的日志。

我首先查看的程序日志,因为nginx和数据库这么久都没发生异常,不可能突然间搞出几十G的日志,但是服务器上面的项目(服务器上面放了几个项目)最近却有更改。

web目录下,使用du -sh *,果然有一个项目,占用内存30多G,逐步查看目录,发现某个项目下log目录下占用31G,查看之,其中一个log文件占用31G空间。

解决办法

rm -rf ./app.log-2017-12-03

该文件是昨天产生的,文件太大,没有打开看是什么内容,大概猜测应该是昨天这个项目迁移数据库,数据库配置没有及时更新导致产生了大量的错误日志导致的,将之删除即可。昨天的错误已经解决,不会再生成错误文件。

再次查看空间,容量又恢复了。

df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/vda1        40G  6.4G   31G   18% /
devtmpfs        910M     0  910M    0% /dev
tmpfs           920M     0  920M    0% /dev/shm
tmpfs           920M  420K  920M    1% /run
tmpfs           920M     0  920M    0% /sys/fs/cgroup
tmpfs           184M     0  184M    0% /run/user/1003

再次启动PM2,PM2恢复正常了。

alt

本文链接:https://luodao.me/post/cipan-pm2-down.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。