为什么“proc”和“sys”文件夹的大小超过 100 TB?

jza*_*jza 10 ubuntu

我认识的一个人刚刚发表了以下声明:

“我的系统上有 140.7 TB 的文件”

其他人说了一些类似“如何?”的问题。回应是:

“虚拟内存,Ubuntu 有它的怪癖。/proc/core文件”

我对 Linux 不太了解,想知道是否有人可以解释以上内容。我不明白怎么会有人拥有 140.7 TB 的任何东西,除非他们有大量的硬盘。

use*_*686 16

这些位置属于虚拟文件系统。每当您尝试访问时,您看到的所有内容——文件夹、文件、它们的内容——都是在现场制作的。直到您阅读文件后才知道实际大小(并且通常无法缓存,因为不同的读者可能会看到不同的内容)。

文件系统本身不占用任何东西;它们只是内核的视图。

有时大小已知的,但它所代表的数据是海量的。例如,core文件代表一个进程的虚拟地址空间——这个地址空间与 CPU 可以寻址的一样大;它不受实际 RAM/交换大小的限制。因此,在“64 位”系统上,该文件将在 2 48到 2 64字节左右。

因此,如果您在虚拟文件系统上运行磁盘使用实用程序,您会得到非常奇怪的数字是很正常的,特别是如果它们计算“表观”(稀疏)大小,而不是实际磁盘使用情况。


Ign*_*ams 5

不,这不是原因。稀疏文件 看起来有一定的大小,因为文件头列出了它,但它们包含的数据要少得多。

  • 当您尝试使用不理解它们的备份程序来备份稀疏文件时,会发生惊人的事情。在 Xenix 上了解到这一点。 (5认同)