[Linux] 메모리 페이지 캐쉬 Free Develop Tip

Mac도 마찬가지고 거의 모든 OS는 메모리를 페이지로 관리하면서 
속도를 개선하기 위하여 캐슁을 합니다.
가령 어떤 실행 프로그램을 제일 첫번째 수행했을 때와
두번째 수행한 다음의 속도차이가 생기는 이유가 그럴 것입니다.
또는 find 명령과 같이 파일 시스템 관련 명령을 수행해도
첫번째와 달리 두번째 수행한 결과는 이전과 달리 상당히 빠르게 
결과가 나오는 것을 경험하셨을 것입니다.

그런데 이렇게 메모리가 캐슁되는 것이 때로는
Free 메모리를 많이 잡아먹어 오히려 새롭게 큰 Free 메모리를 
필요로 하는 경우 메모리 할당을 못해 메모리 Swap in/out이 생겨
속도가 현저하게 떨어질 수도 있습니다.

결국 수동으로 캐쉬된 메모리 페이지를 Free하는 방법이 필요합니다.

결론적으로,

$ sudo /sbin/sysctl vm.drop_caches=3

이라고 하면 모든 캐쉬된 메모리가 Free 됩니다.

위의 값에는 (1, 2, 3) 세 가지 중에 하나가 될 수 있으며, 각각의 의미는 다음과 같습니다.

1 - 단순 프로그램에서 할당하고 캐쉬된 메모리 페이지를 프리
2 - 파일 시스템과 관련된 dentry와 inode의 캐쉬를 프리
3 - 1,2 모두 프리

이상과 같습니다.


덧글

댓글 입력 영역

구글애드텍스트