什么使用Linux“应用程序内存”?

什么使用Linux“应用程序内存”?

只是为了好玩,我想看看ls -lR /Linux 系统上的“缓冲”内存会发生什么变化。正如预期的那样,价值增加了​​。但我注意到“应用程序内存”(即“已使用”-(缓冲区+缓存))也增加了,并且在命令完成后它并没有下降。

因此,我在重新启动后再次测试它,并运行尽可能少的应用程序(以防其他应用程序正在使用内存而我没有注意到)。我记录了top -b -n 1之前和之后的输出:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3879        413       3466          1         63        232
-/+ buffers/cache:        117       3762
Swap:         7059          0       7059

$ top -b -n 1
top - 19:33:36 up 11 min,  1 user,  load average: 0,00, 0,02, 0,05
Tasks: 130 total,   1 running, 129 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,3 us,  0,2 sy,  0,0 ni, 97,9 id,  1,5 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   3972908 total,   423356 used,  3549552 free,    65308 buffers
KiB Swap:  7229324 total,        0 used,  7229324 free.   238424 cached Mem
(process list omitted)

$ ls -lR /
(output omitted)

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3879       1293       2586          1        315        252
-/+ buffers/cache:        725       3154
Swap:         7059          0       7059

$ top -b -n 1
top - 19:36:19 up 14 min,  1 user,  load average: 0,33, 0,25, 0,13
Tasks: 130 total,   1 running, 129 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,4 us,  2,2 sy,  0,0 ni, 95,5 id,  1,8 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   3972908 total,  1324492 used,  2648416 free,   322580 buffers
KiB Swap:  7229324 total,        0 used,  7229324 free.   258976 cached Mem
(process list omitted)

中的进程列表保持完全相同(当然,除了列TIME+top进程本身的一些更改),表明没有进程实际上使用额外的半千兆字节内存。所以我的问题是:什么使用了这个内存,它最终会被释放吗?另外,当我长时间使用系统并频繁访问文件系统时,是否也会发生同样的情况?

相关内容