我有一个org.apache.solr.hadoop.MapReduceIndexerTool/MorphlineMapper
填充本地‘/’挂载的过程。
它运行几分钟,磁盘就满了,Nagios 警报被触发,然后我终止了该进程。一旦进程被终止,文件利用率就会下降到 40% 的基准水平。
这种情况发生得相当快,而且由于这是一个生产系统,所以没有太多时间仔细检查文件系统以查看哪些文件是新的。还有几个 NFS 挂载导致du -sh *
挂起。我们正在运行 RHEL 6.7。
有没有一种聪明的方法可以确定到底是什么占满了磁盘?也许有一种快速的方法来捕获、区分和聚合文件大小lsof
?我想这是一个相当常见的场景,所以可能是每个系统管理员工具包中的一个不错的awk
单行代码。
答案1
此事件从发生前到完全停止大约用了 8 分钟。这将是一个需要手动避免的惊人响应时间,尤其是当管理员在事件开始时不在系统上时。
您需要更多的反应时间。给它更多的空间来处理。以某种方式限制或限制工作。
iotop 是一个不错的 Python 脚本,可以查看执行 I/O 最多的进程。其中可能包含失控。使用正确的选项,它可以获得不错的批处理输出,例如iotop -bkto
。