e2fsck运行时使用什么内存?

由于内存限制,我在运行e2fsck时遇到了问题,详见本问题 。 在调查过程中,我遇到了一些比较普遍的事情,所以我就把它放在自己的问题上。

运行e2fsck时,机器上的内存使用率将达到99%左右。 也开始有一些交换。 然而奇怪的是,这是top -M输出的开始:

 top - 14:09:37 up 1 day, 4:14, 3 users, load average: 1.00, 1.00, 0.92 Tasks: 127 total, 2 running, 125 sleeping, 0 stopped, 0 zombie Cpu(s): 12.4%us, 1.8%sy, 0.0%ni, 81.1%id, 4.6%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1004.961M total, 987.484M used, 17.477M free, 664.469M buffers Swap: 21.953G total, 72.574M used, 21.882G free, 68.512M cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7627 root 20 0 164m 152m 61m R 100.0 15.2 49:18.25 e2fsck 8340 root 20 0 2696 996 752 R 2.0 0.1 0:00.01 top 1 root 20 0 2896 8 4 S 0.0 0.0 0:01.87 init 

所以即使整体内存使用率达到了99%,e2fsck也只显示为15.2%,并且没有其他的内存运行。

所有的记忆去了哪里? 这种行为是e2fsck独有的,还是这种“正常”(不可取,但可以理解)。 我不知道除了正在运行的进程以外,其他任何东西都可以使用内存。

这个是正常的。 Linux使用可用内存来缓冲磁盘访问。

看看为什么Linux会奇怪地报告“空闲”内存?