Linux File Cache leeren

Für den Fall, das der komplette Arbeitsspeicher belegt ist, kann das vom File System Cache kommen.
Es kommt immer mal wieder vor, das die gecachten Daten nicht richtig oder nur sehr langsam freigegeben werden.

Mit folgender Kommandozeile kann man alles frei machen, was frei gemacht werden soll.
free && sync && echo 3 > /proc/sys/vm/drop_caches && free

             total       used       free     shared    buffers     cached
Mem:       2058636    1923244     135392       1628     129472     925808
-/+ buffers/cache:     867964    1190672
Swap:       392188       4232     387956
             total       used       free     shared    buffers     cached
Mem:       2058636     841904    1216732       1628        832      37600
-/+ buffers/cache:     803472    1255164
Swap:       392188       4232     387956

Alternativ kann man den Kernel aber auch bescheid geben das er bestimmte Caches leeren soll.

Um den PageCache zu leeren:
echo 1 > /proc/sys/vm/drop_caches

Um den Dentries und Inodes zu leeren:
echo 2 > /proc/sys/vm/drop_caches

Um alle drei Caaches zu leeren:
echo 3 > /proc/sys/vm/drop_caches

Egal welche Version verwendet wird. Das ganze muss imm als root User oder via sudo ausgeführt werden.

Neuen Kommentar schreiben