一招解决磁盘满载的问题(以博客评论为例)

存储技术

606人已加入

描述

    已经很久没有关注自己的博客了,待回来细看时,是不是发现文章下面自己写的评论服务已经挂了。后来才知道原来是磁盘都满了,那么如何来解决这个问题呢,接下来就大致简单复现一下发现和解决问题的过程。

  定位问题

第一步,还是到VPS搭建环境对应的管理面板下查看一下机器的状态,貌似一切正常,除了这一抹红色:

  

  

  对,10G磁盘都满了!这很有可能是导致评论服务挂掉的原因。所以,还是ssh登陆到服务器上去,看看到底是什么导致这10G内存(上次关注它的时候连10%都没用到)都用完了。接下来,就需要在命令行里查询具体是哪个目录占了很多资源了。通过下面的这样的指令,就可以发现是哪一块在我没关注的这一阶段默默膨胀了。

  df -h du -hs /* du -hs /root/* du -hs /var/log/*

  果然,原来都是nginx的log捣的鬼(居然膨胀到了将近9G,那还得了)!

  

  再cd到对应的目录查看具体是哪个文件:

  cd /var/log/nginx du -hs *

  罪魁祸首应该就是这Ngnix的access.log

  

  解决

  问题的原因找到了,解决起来就简单了。access.log记录了所有的nginx处理的请求记录,这肯定是随着时间的积累,信息量已经越来越大,以至于到了这个地步。不过这个log现在对于我而言没有太过价值,所以直接干脆 rm -rf 。/access.log 删掉该文件。不过,当我开心地再次检查内存状况(df -h )时,发现内存占用和之前一样,依然有10G。这不科学?确实不科学,这个时候按经验来说,很多人可能会选择重启服务器(但我还是不希望为了这个重启云上的服务器)。网上大概了解下原因:可能存在一些运行进程在使用未链接(实际已经删除了)的文件。所以,检查一下是否这样的进程在运行(其实,这时候基本上知道是nginx了):

  ls -ld /proc/*/fd/* 2》&1 | fgrep ‘(deleted)’

  果然,就是nginx。只要重启nginx服务就能够让 df 命令报出正式的内存状况。

  service nginx restart

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分