Devops/Linux
[Linux] 메모리 Buffer/Cache 비우기
dev_ss
2024. 8. 13. 01:45
이전 글에서는 컴퓨터 자원과 그 사용량을 확인할 수 있는 명령어를 알아보았다.
서버에 Database나 Kafka와 같은 메시지 브로커를 올려서 IO가 많이 발생하게 된다면, 아래 사진과 같이 Buff/Cache가 많이 쌓이게 된다.
필요에 따라 쌓인 캐시를 비워줄 수 있지만, 캐시를 바로 비우면 데이터 손실이 일어날 수 있기에 아래 명령어를 통하여 캐시를 스토리지와 동기화를 시켜준다.
# 비우기 전 데이터 손실 방지로 캐시를 스토리지와 싱크
sync
sync를 맞추고 나면 목적에 따라 아래 3가지 방식으로 캐시를 비울 수 있다.
- Buffer cache(Page cache) 할당을 해제
# 커널에 값을 직접 입력할 때
echo 1 > /proc/sys/vm/drop_caches
# sysctl 사용 시
sysctl -w vm.drop_caches=1
- Dentries, Inodes 할당을 해제
# 커널에 값을 직접 입력할 때
echo 2 > /proc/sys/vm/drop_caches
# sysctl 사용 시
sysctl -w vm.drop_caches=2
※ Dentries, Inodes : 파일 및 디렉토리 구조 캐싱
- 전체(Buffer Cache, Dentries, Inodes) 할당을 해제
# 커널에 값을 직접 입력할 때
echo 3 > /proc/sys/vm/drop_caches
# sysctl 사용 시
sysctl -w vm.drop_caches=3
반응형