리눅스 시스템에서 가끔 버퍼로 사용되는 캐쉬를 날려서 가용 메모리를 확보하거나 블록 시스템을 강제로 플러슁시키고 

싶을때가 있습니다. 


이때 사용가능한 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/


이도 꽤나 괜찮습니다.