리눅스 / 캐시 메모리 삭제하는 방법

free 명령어로 메모리 사용 현황을 볼 수 있다. 아래의 경우 free에 여유가 있는데, 만약 buff/cache 사용량이 많아 free에 공간이 없다면 시스템이 느려진다. 그런 경우 메모리 캐시를 삭제하여 속도를 향상 시킬 수 있다.

free
               total        used        free      shared  buff/cache   available
Mem:         3734312      928012     2766924       21448      277512     2806300
Swap:        4145148           0     4145148

pagecache 비우기

echo 1 > /proc/sys/vm/drop_caches

dentries, inodes 비우기

echo 2 > /proc/sys/vm/drop_caches

pagecache, dentries, inodes 모두 비우기

echo 3 > /proc/sys/vm/drop_caches

메모리를 비우기 전에 sync 명령으로 저장되지 않은 메모리의 데이터를 디스크로 저장하는게 좋다고 한다.

sync

주기적으로 캐시 삭제를 하고 싶다면 crontab을 이용한다. 아래와 같이 하면 매 시간마다 pagecache, dentries, inodes 모두를 삭제한다.

0 * * * * sync && echo 3 > /proc/sys/vm/drop_caches