由于内存限制,我无法运行 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 独有的行为吗?还是“正常”的(虽然不可取,但可以理解)。我不知道除了正在运行的进程之外,其他任何东西还能使用内存。
答案1
这是正常的。Linux 使用空闲内存来缓冲磁盘访问。