gpt4 book ai didi

logging - "tail -f"使磁盘已满?

转载 作者:行者123 更新时间:2023-12-05 00:35:06 26 4
gpt4 key购买 nike

我们的应用程序服务器 (sunOS) 总是磁盘满了。我们的基础设施团队说这是由太多的“tail -f”进程引起的。因为app频繁轮转日志文件,导致死链接,没有磁盘空间?
我以前从未听说过这个。该命令真的会导致磁盘已满吗?

最佳答案

在对该文件的所有引用都消失之前,无法回收文件占用的空间。因此,任何打开该文件的进程都将阻止该文件从磁盘中删除。

一个活跃的tail -f例如,跟随文件。

如果需要删除这些文件以释放磁盘空间(例如,因为它们非常大,或者它们的数量非常多),那么周围存在保存对它们的引用的进程将阻止它们被删除,并最终导致磁盘填满向上。

编辑以回应对另一个答案的评论:

您报告的诊断结果正是您在 Adam 和我所描述的情况下所期望看到的。 df报告 56G的磁盘正在使用中,并且 du报告只有 10G在文件夹中可见。差异是因为有46G已从文件夹中删除但无法从磁盘物理删除的文件,因为某些进程持有对它们的引用。

自己试验这个很容易:找到一个可以安全使用的文件系统,然后创建一个庞大的文件。编写一个 C 程序,打开文件并进入无限循环。现在,请执行以下操作:

  • 启动程序
  • 检查 df 的输出
  • rm文件
  • 检查 df 的输出再次
  • 停止你的程序
  • 检查 df 的输出再次

  • 您将看到 df 的输出 rm后不变ing 文件,但一旦停止程序就会改变(从而删除对文件的最后一个引用)。

    如果您需要更多证据证明这就是正在发生的事情,您可以从 /proc 获取信息。文件系统,如果你有的话。具体来说,找到 tail -f 之一的 PID进程(或您认为可能是原因的其他进程),然后查看目录 /proc/<pid>/fd查看它打开的所有文件。

    (我家里没有 *nix,所以在这种情况下,我实际上无法查看您会看到的内容 /proc/<pid>/fd)

    关于logging - "tail -f"使磁盘已满?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799451/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com