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

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

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

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

其他人说了类似“怎么办?”的话,回答如下:

“虚拟 RAM,Ubuntu 有其怪癖。/proc/core文件”

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

答案1

这些地点属于虚拟的文件系统。您看到的一切(文件夹、文件及其内容)都是在您尝试访问时现场制作的。实际大小甚至直到您访问时才知道。您阅读该文件(并且它通常无法被缓存,因为不同的读者可能会看到不同的内容)。

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

有时尺寸已知但数据代表规模巨大。例如,core文件代表进程的虚拟地址空间 - 此地址空间与 CPU 可以寻址的大小相同;它不受实际 RAM/交换大小的限制。因此,在“64 位”系统上,文件大约为 2 48到 2 64字节。

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

答案2

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

答案3

单程可以他们有大量的压缩文件,并且正在计算它们的大小未压缩

显然这取决于文件的类型,因为有些文件的压缩程度比其他文件更高(例如文本文件),而有些文件则不能在不丢失数据的情况下进一步压缩(例如 jpg、mp3),但是理论上这可以提供你的朋友引用的数字。

相关内容