微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 一招解决磁盘满载的问题(以博客评论为例)

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

时间:09-17 来源: 点击:

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

  定位问题

第一步,还是到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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top