Linux bardzo agresywnie wykorzystuje wolną pamięć RAM do buforowania danych odczytywanych z dysków (inode’ów, plików, itd…). Ma to niebagatelny wpływ na zwiększenie szybkości uruchamiania programów które już raz zostały uruchomione. Jednak nie zawsze jest to pożądane zachowanie, np. testując szybkość uruchomienia/wykonywania tworzonej przez nas aplikacji - buforowanie zmienia czas ładowania aplikacji przy kolejnych uruchomieniach. Dobrze byłoby móc wymusić zwolnienie buforów by każdy start programu miał porównywalne “warunki startowe”.
Na szczęście można to zrobić w prosty sposób:
sync && echo 3 > /proc/sys/vm/drop_caches
Polecenie to zwolni niewykorzystywany cache pliku stronicowania, katalogów i inodów. Wcześniejsze uruchomienie sync pozwala zwolnić większą ilość buforów przez wymuszenie zapisania otwartych plików.
Inne możliwe warianty to:
- zwolnienie cache pliku stronicowania:
sync && echo 1 > /proc/sys/vm/drop_caches
- zwolnienie cache cache katalogów i inodów:
sync && echo 2 > /proc/sys/vm/drop_caches
Opcja ta dostępna jest w jajkach od wersji 2.6.16.