IT/Linux
리눅스 버퍼, 캐시 메모리 삭제 및 자동 삭제
조스톡
2022. 9. 17. 12:00
728x90
반응형
기본적으로 리눅스는 메모리를 free 상태로 있는 것보다 buff/cache 상태로 존재하려 한다고 하나, 버퍼/캐시 메모리를 주기적으로 정리해 줘서 보다 쾌적한 서버 자원을 확보하는 것도 좋을 수 있다.
캐시메모리 삭제 방법
아래는 방식별로 기재한 것으로, 원하는 방식을 골라서 사용하면 된다.
캐시메모리는 pagecache와 dentries, inodes 두 종류로 나뉜다.
pagecache 해제
- 동일한 데이터에 접근할 경우 메모리에서 바로 가져오도록 하여 I/O 성능을 높이는 캐시.
echo 1 > /proc/sys/vm/drop_caches
dentries, inodes 해제
- 파일의 자료구조로 보다 빠른 데이터 접근을 위한 캐시로, dentries는 경로명 탐색 역할도 수행한다.
echo 2 > /proc/sys/vm/drop_caches
pagecache, dentries, inodes 모두 해제
echo 3 > /proc/sys/vm/drop_caches
캐시메모리 정리(pagecache, dentries, inodes) + sync
- 캐시메모리 중 write buffer라는 파일 쓰기 대기 버퍼는 drop_cache로 사라지지 않는다.
- sync 명령어는 메모리의 데이터를 디스크에 저장하여 동기화시키는 작업으로, write buffer 내용을 디스크에 쓰고 drop 할 수 있는 캐시로 바꾼다.
- 그렇기에 sync 후 drop_caches를 하면 보다 많은 메모리가 확보된다.
sync && echo 3 > /proc/sys/vm/drop_caches
자동으로 캐시 비우기(크론탭 crontab)
'crontab -e'를 입력한 뒤, 마지막 줄에 원하는 내용을 입력하면 된다.
디스크 I/O 가 많은 시간에 캐시메모리를 정리하면 CPU 부하량이 증가 할 수 있으므로 사용이 적은 시간에 설정 하는 것이 좋다.
0 7 * * 0 sync && echo 3 > /proc/sys/vm/drop_caches # 매일 오전 7시에 캐시 비우기
0 * * * * sync && echo 3 > /proc/sys/vm/drop_caches # 매 시간 캐시 비우기
728x90
반응형