강좌 & 팁
글 수 2,412
2012.05.28 15:34:38 (*.52.177.29)
57117
리눅스 시스템에서 가끔 버퍼로 사용되는 캐쉬를 날려서 가용 메모리를 확보하거나 블록 시스템을 강제로 플러슁시키고
싶을때가 있습니다.
이때 사용가능한 proc 파일 시스템 명령을 소개 합니다.
커널 2.6.16 이후에 가능한 기능인데요 ...
/proc/sys/vm/drop_caches 를 이용하면 됩니다. .
페이지 캐쉬를 날려 버리고 싶을때
echo 1 > /proc/sys/vm/drop_caches
dentry 와 inode 캐쉬를 날려 버리고 싶을떄
echo 2 > /proc/sys/vm/drop_caches
모든 캐쉬를 날려 보리고 싶을때
echo 3 > /proc/sys/vm/drop_caches
물론 모든 캐쉬를 완전히 없애 주지 않습니다. 요청만 할 뿐입니다.
예를 들어 캐쉬된 데이터가 아직 블록 시스템에 쓰여지지 않았다면 캐쉬에 버티고 있게 됩니다 .
해당 처리를 하는 원리를 보고 싶다면 커널 소스의 다음을 참조 하면 됩니다.
fs/drop_caches.c
참고로 최근 lxr.linux.no 가 맛탱이가 잘 가는데
http://lxr.free-electrons.com/source/
이도 꽤나 괜찮습니다.