/proc 逐渐消耗硬盘空间

/proc 逐渐消耗硬盘空间

运行centos 7.0的EC2实例硬盘空间消耗缓慢,重启后刷新。

内容:基础操作系统、Cloudwatch 代理、CodeDeploy 代理、nginx、Anti Virus MacFee、Java 应用程序(日志文件受控制)。

重启前的屏幕截图 1:已使用的磁盘空间75%

根据此屏幕截图,我们找到了 10 个最消耗空间的文件,而 /proc 位于顶部。

在此输入图像描述

屏幕截图2 重启后:已使用的磁盘空间9%

使用的文件被刷新,无法确定问题是由应用程序还是其他组件引起的。

在此输入图像描述

答案1

您误读了输出:有关的行/proc是错误消息,因为du无法读取某些文件find要求它使用;它们并不表明 中的文件/proc属于系统上前十个最大的文件。无论如何,作为史蒂夫提到的,/proc是它自己的虚拟文件系统,并且不占用驱动器上的任何空间。

为了避免列出不相关的文件,您可以find使用该选项告诉不要跨越文件系统边界-xdev

似乎给您带来麻烦的文件是/var/log/awslogs.log/var/log/awslogs.1:您的第一个命令将它们列为系统上两个最大的文件,并且它们不会出现在第二个命令的输出中(或者更确切地说,它们较小 - 我明白awslogs.log.1列表的下方)。

答案2

这就是当您管道化 stdout 并且不抑制 stderr 时会发生的情况。

因为在完成其工作之前需要拥有整个输入缓冲区(显然),所以在完成搜索之前sort它实际上并没有开始将输出传递给它。headfind

但是,由于您未抑制 stderr,因此会报告在看到它们和du启动之间停止存在的文件的错误,并且这些错误消息会在引发它们时报告(因为 stderr 没有被缓冲)。finddu

如果您在没有排序和头管道的情况下运行 find 命令,您将看到发生了什么。

相关内容