【发布时间】:2011-12-25 22:28:09
【问题描述】:
可以评论这个问题:
How to clean caches used by the Linux kernel
ypnos 声称:
“应用程序将永远是内存的第一公民,不必为它与缓存竞争。”
嗯,我认为我的缓存是叛逆的,不想接受它的社会阶层。我在这里进行了实验:
http://www.linuxatemyram.com/play.html
第 1 步:
$ free -m
total used free shared buffers cached
Mem: 3015 2901 113 0 15 2282
-/+ buffers/cache: 603 2411
Swap: 2406 2406 0
所以 2282MB 被缓存使用,113MB 是空闲的。
现在:
$ ./munch
Allocated 1 MB
Allocated 2 MB
Allocated 3 MB
Allocated 4 MB
.
.
.
Allocated 265 MB
Allocated 266 MB
Allocated 267 MB
Allocated 268 MB
Allocated 269 MB
Killed
好的,Linux 又慷慨地给了我 156MB,就是这样!那么,如何告诉 Linux 我的程序比 2282MB 缓存更重要?
额外信息:我的 /home 已加密。
更多人有同样的问题(这使得加密假设不太合理):
https://serverfault.com/questions/171164/can-you-set-a-minimum-linux-disk-buffer-size
和
【问题讨论】:
-
您的
overcommit_memory设置是什么(在/proc/sys/vm/overcommit_memory中)?有可能大部分空闲内存被提交给尚未触及它的其他进程。/proc/meminfo也提供了比free更详细的信息。
标签: caching linux-kernel