티스토리 뷰

개발/Linux

drop_caches (caches flush)

Jaeyeon Baek 2011. 9. 5. 15:35

리눅스의 메모리 메커니즘은 application에서 메모리를 사용하고 반환할 때에 바로 소진되지 않고, cache되어 있다, 그리고 cache를 재사용하는것이 리눅스의 기본적인 동작인데, 강제로 cache를 비우는 방법을 알아봅니다.

 

우선 cache /proc/sys/vm/drop_caches 경로에 있고, 이 경로에 1~3의 값 입력을 통해 cache가 비워지게 됩니다.

 

그렇다면 각 number에 대한 의미를 알아봅니다.

1 : To free pagecache

2: To free dentries and inodes

3: To free pagecache, dentries and inodes

This is a non-destructive operation and will only free things that are completely unused. Dirty objects will continue to be in use until written out to disk and are not freeable. If you run "sync" first to flush them out to disk, these drop operations will tend to free more memory


 

위 내용은 linux-mm.org에서 발췌한 내용인데, 사용하기 전에 sync 를 권고 하고 있습니다. 


또한 num 3의 경우에 부하가 심한 서버의 경우 hang이 될 염려가 있으므로 명령어 수행을 새벽시간에 권장합니다.. (현재 upstream version에서는 문제가 해결되었다고 합니다. https://access.redhat.com/kb/docs/DOC-23223)

참고 : 유사한 동작으로 cache를 비우거나 해지하는 역할로는 pdflush나 kswapd0가 있습니다,

출처 : http://linux-mm.org/Drop_Caches

 


'개발 > Linux' 카테고리의 다른 글

pid의 최대값  (0) 2011.09.16
kernel thread 목록  (0) 2011.09.05
회선 대역폭 측정 (iperf)  (0) 2011.08.31
struct size의 오해와 진실...  (0) 2011.08.25
전처리문 - #ifdef AND ...  (0) 2011.08.17
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday