다음 명령어를 사용하여 memory page cache 를 삭제한다.

 

 

# echo 1 > /proc/sys/vm/drop_caches
# free -m

 

참고 linuxhint.com/clear_cache_linux/

 

 

free -m 명령어를 통해 현재 memory 전체 크기, 사용된 크기, cache 크기 등을 볼 수 있다.

 

위의 명령어로 메모리 cache 를 삭제하면, free -m 의 결과에서 cache 가 쭉 떨어지는 것을 볼 수 있다.

 

 

echo 1 뿐 아니라 echo 2, 3 도 있음.

 

1. Clear PageCache only.
# echo 1 > /proc/sys/vm/drop_caches

2. Clear dentries and inodes.
# echo 2 > /proc/sys/vm/drop_caches

 

3. Clear PageCache, dentries and inodes.

# echo 3 > /proc/sys/vm/drop_caches 

 

cache 를 지워야하는 경우 PageCache  지우는 것이 엔터프라이즈 및 프로덕션에서 가장 안전.

PageCache , dentries  inodes 까지 모조리 지우는 것은, 지우는 입장에서 내가 뭘 지우고 있는지 아는 게 아니라면 지우지 않는 것을 추천.

 

자세한 설명은 아래 링크 참고.

www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/

 

 

 

 

위에서 말하는 page, dentries, inodes cache 가 무엇인지 아래에서 설명해주고 있다.

 

page cache : 물리적인 저장/통신 장치와 데이터를 주고받는데 나중에 동일한 데이터에 접근할 경우 메모리에서 바로 가져오도록 하여 I/O 성능을 높이는 캐시입니다.
1) page cache : 리눅스는 물리적인 저장/통신 장치와 데이터를 주고 받을 때 먼저 메모리에 적재한 후 데이터를 주고 받는데 나중에 동일한 데이터에 대한 접근을 할 경우 메모리에서 바로 가져오도록하여 I/O 성능을 높이기 위함이다. 이때 Page라는 단위로 관리하는데 이를 page cache라고 한다.

 

inode, dentry cache : 파일의 자료구조로 보다 빠른 데이터 접근을 위한 cache며 dentry는 경로명 탐색을 위한 cache도 수행합니다.

2) inode, dentry cache : 파일의 자료구조를 의미한다. 보다 빠른 데이터 접근을 위해 Slab의 자료구조에 추가되어 사용, dentry는 경로명 탐색을 위한 cache 역할도 수행

 

출처

www.chlux.co.kr/bbs/board.php?bo_table=board01&wr_id=101

lascrea.tistory.com/66

 

 

 

 

 

memory cache 를 삭제하기 전에 sync 명령을 수행해주면 file system buffer 를 disk 로 flush 하는 효과를 본다.

 

예를 들어

 

# sync ; echo 1 > /proc/sys/vm/drop_caches

 

간단하게 말해 sync 는 메모리의 데이터를 디스크에 저장하여 동기화시키는 작업이다.

 

출처

nicejoo.blogspot.com/2012/01/sync.html

 

 

 

 

 

 

 

 

 

만약 permission denied 가 되었다면, 아래처럼 명령어 전체에 sudo 권한을 주어서 실행시킨다.

 

# sudo sh -c "echo 1 > /proc/sys/vm/drop_caches"

 

위의 echo 1 뒤에있는 redirection( > )은 기존의 권한을 따라가기 때문에 permission denided 가 뜬단다.

 

참고 : egloos.zum.com/studyfoss/v/5204344

 

 

 

 

 

 

+ Recent posts