【问题标题】:How to handle maxed out volume on EC2.如何处理 EC2 上的最大容量。
【发布时间】:2015-11-11 21:54:46
【问题描述】:

我们的其中一台服务器有一个目录 disk2,该目录已满 95%。但是,当我运行命令来确定大部分空间的使用位置时,它显示它是 int /disk2/backups - 它显然安装在不同的更大设备上的不同文件系统上,并且只有 31% 已满。这是这两个设备的 DU 命令的输出:

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/xvdb       51475068 46084284   2752960  95% /disk2
/dev/xvdf      154687468 45454904 101352500  31% /disk2/backups

将 /dev/xvdb 设置为 95% 让我感到紧张,因为它是生产服务器。我认为它一直在增长,因为我以前没有注意到它。清理备份之前已经解决了这个问题,但我认为这次它在不同的设备上。

我无法确定主要空间使用量在哪里,部分原因是当我在 /disk2 上运行指标时,备份一直显示为最大的文件。当我深入到不在 /backups 中的 disk2 目录时,似乎没有什么大的。

另外,du 提出的标题是“1 k 块”。这是否意味着数字应该乘以 1k?它是否适用于已使用的可用列?我想它一定是字节,因为第一卷是 50G,第二卷是 150G。

【问题讨论】:

    标签: unix amazon-ec2 filesystems diskspace du


    【解决方案1】:

    通常情况下,我会使用

     cd /disk2
     du -sm * | sort -n
    

    让最大的目录/文件显示在底部。

    因为备份目录可能需要很长时间才能扫描到没有额外值, 我会试试的

      cd /disk2
      du -sm !(backups) | sort -n
    

    !(backups) 是一个与* 类似的shell glob,但在这种情况下,它将从返回的列表中排除backups

    恕我直言,!(target) 语法并不完全直观。例如,如果您执行!(backups)*,那么您将再次获取所有文件,并且将扫描备份。只是一个警告。

    也许其他读者可以发布指向使用高级 shell glob 的教程的链接。

    IHTH

    【讨论】:

    • 谢谢。我最终使用此命令深入到有问题的目录:sudo du -ksh * |排序 -n -r。结果发现在其中一个 tomcat 服务器日志目录中有一个 18G 的日志文件 catalina.out。我删除了文件,在所有用户下线的情况下重新启动了tomcat,重新获得了超过35%的磁盘空间。
    • @JackBeNimble :很高兴帮助并感谢您的投票。是的,今天晚些时候要添加更多内容,您可能需要深入研究。很多时候,您可以深入 5-6 层以获取 mongo-log 文件。很高兴你解决了。
    • 关于 !(target) 语法的重要提示。它本质上不是 grep,对吧?
    • 是的,!(target) 的最简单形式类似于grep -v,但您可以包含!(tg1|targ2|target3) 之类的列表(例如egrep -v)。但是,就像我说的,它不像egrep -v 那样直观,因为它与shell 通配符交互。当我使用!(targ) 时,我尽量保持简单。但这只是 MHO。很高兴它有帮助!祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多