確定在這個問題評論:如何保持高速緩存中的二等公民
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
OK,Linux的給我,慷慨另一個156MB,這就是它!那麼,我該如何告訴Linux我的程序比2282MB緩存更重要?
其他信息:我/家已加密。
更多的人有同樣的問題(這使加密假設不是很合理):
https://serverfault.com/questions/171164/can-you-set-a-minimum-linux-disk-buffer-size
和
什麼是'overcommit_memory'設置(在/ proc/sys/vm/overcommit_memory中)?有可能大部分的空閒內存都被分配給尚未觸及它的其他進程。 '/ proc/meminfo'也提供比'free'更詳細的信息。 – caf