好久没管博客了,回来一看——评论功能挂了。
说实话,这个评论系统本来就没做完,但作为一个有点追求的 developer,总不能眼睁睁看着它躺尸吧?于是开始排查。整个过程其实挺有意思的,如果你也在用 VPS 跑点小服务,这个坑你迟早会踩到。
我的评论服务跑在搬瓦工的 VPS 上(别问为什么,便宜啊,自己折腾的东西用不着太贵的)。
打开搬瓦工的管理面板,其他指标都正常,就一个地方红得刺眼:10G 磁盘,满了。
这就对上了。上次看它的时候,磁盘占用连 10% 都不到,现在直接爆仓。肯定是这段时间某个东西在疯狂吃空间。
SSH 登上去,先看看是哪个目录在膨胀。跑一下这个命令:
bash
du -h --max-depth=1 / | sort -hr
结果一目了然:/var/log/nginx 占了将近 9G。
好家伙,nginx 的日志文件悄悄长成了巨无霸。
再进去细看:
bash
cd /var/log/nginx
du -hs *
果然,access.log 这一个文件就占了 8.8G。它记录了所有 nginx 处理过的请求,时间一长,不爆才怪。
如果你也在用 VPS 跑服务,尤其是像 👉 搬瓦工这种性价比高但磁盘空间有限的 VPS,日志管理这件事千万别忽视。稍不注意,10G 磁盘真的说满就满。
这个日志对我来说没什么用,直接删:
bash
rm -rf ./access.log
删完之后,我满心欢喜地跑了一下 df -h,想看看磁盘恢复了多少。
结果——还是 10G。
什么鬼?文件明明删了啊。
查了一下才知道:如果有进程正在使用某个文件,即使你把文件删了,系统也不会立刻释放空间。这个文件会变成"已删除但仍被占用"的状态。
验证一下:
bash
ls -ld /proc//fd/ 2>&1 | fgrep '(deleted)'
果然,nginx 还在占用那个已经被删掉的 access.log。
解决办法很简单——重启 nginx:
bash
service nginx restart
重启之后再看磁盘,空间终于回来了。刷新博客页面,评论功能也恢复了。
评论系统挂掉,表面上看是功能问题,实际上是 nginx 日志把磁盘撑爆了。
日志这东西,平时不起眼,但它会一直长。如果不管,迟早出事。尤其是用小盘 VPS 的时候,更得注意。
接下来我得给 nginx 加个日志轮转或者定期清理的任务。不过在那之前,我得先把评论系统的"评论"功能做出来,哈哈哈(捂脸)。
如果你的服务突然挂了,别急着重装系统。先查查磁盘,很可能就是某个日志文件在作怪。
对于用 VPS 跑小项目的人来说,👉 搬瓦工这类轻量级 VPS 确实够用,但磁盘空间有限是硬伤。定期清理日志、做好监控,能省不少麻烦。
毕竟,谁也不想某天打开网站,发现服务又躺了。