使用 du -s 或 df 最大限度地提高 Linux 中磁盘使用情况查询的性能,同时保持准确性?

使用 du -s 或 df 最大限度地提高 Linux 中磁盘使用情况查询的性能,同时保持准确性?

我正在运行一个脚本,以找出各种 VPS 上的磁盘使用情况(大小范围从不到 1 GB 的使用量到超过 200 GB 的使用量)...我试图在保持准确性的同时保持性能(例如:VPS 上没有额外的负载)。

df 速度很快,并且不会产生我所知道的任何磁盘负载,但它不是很准确(我曾经报告磁盘使用了 0.54 GB,但实际使用量却超过 6 GB)...

du -s 在较小的系统上足够快,不会对性能产生影响(它在重要性之前就完成了),它很准确并且运行良好,但如果在较大的系统上运行它,它会使用大量的 I/O 并可能降低整个机器的速度。

因此,我希望得到一些关于在获得准确结果的同时保持性能的建议。

当我查看状态时,此脚本每 10 秒运行一次...第一次提取时数据不一定需要 100% 准确,但第三次提取时应该准确。(如果这有意义的话......)

答案1

df 实用程序报告可用磁盘空间。当它报告的内容与 du 不同时,通常是因为文件已被删除(因此 du 看不到它),但该文件仍被某个进程保持打开状态,因此其磁盘块正在使用中。因此可以说 df 的报告比 du 更准确,因为当文件打开时,它的块不能被其他任何东西使用。

您可以尝试使用伊奥尼采降低磁盘扫描的 io 优先级和好的将降低 CPU 优先级。

顺便说一句,每 10 秒扫描一次可能太频繁了。

相关内容