gpt4 book ai didi

linux - 如何测量由于 Linux 中给定进程的事件而导致的净使用磁盘空间变化?

转载 作者:太空狗 更新时间:2023-10-29 12:21:37 26 4
gpt4 key购买 nike

我想监控正在运行的进程的磁盘空间需求。理想情况下,我希望能够指向一个进程并找出归因于它的已用磁盘空间的净变化。在 Linux 中有一种简单的方法可以做到这一点吗? (我很确定在 Solaris 中使用 DTrace 做到这一点是可行的,尽管可能不是很容易)

最佳答案

可能您必须对其进行 ptrace(或让 strace 为您执行此操作并解析输出),然后尝试找出正在使用的光盘。

这很重要,因为您的跟踪过程需要了解哪些文件操作使用磁盘空间 - 并且没有竞争条件。但是,您也许可以做一个近似值。

很多东西都会耗尽磁盘空间,因为大多数 Linux 文件系统都支持“空洞”。我想您也可以出于会计目的计算孔数。

另一个问题是了解哪些文件系统操作可以释放磁盘空间——例如,在某些情况下,打开文件进行写入可能会截断它。这显然释放了空间。同样,如果重命名文件覆盖现有文件,则重命名文件可以释放空间。

另一个问题是调用辅助进程来做事的进程——例如,如果 myprog 执行一个系统(“rm -rf somedir”)。

此外,也很难知道文件何时已被完全删除,因为它可能已从文件系统中删除但仍被另一个进程打开。

快乐的黑客:)

关于linux - 如何测量由于 Linux 中给定进程的事件而导致的净使用磁盘空间变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900758/

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