리눅스 메모리 비우기
- pagecache 해제
#!/bin/bash sync echo 1 > /proc/sys/vm/drop_caches echo "Drop Cache" |
systemd Service
[Unit] Description=[Drop Cache] [Service] Type=idle User=root ExecStart=/home/root/drop_caches.sh Restart=always RestartSec=1min [Install] WantedBy=multi-user.target |
- dentries, inodes 해제
- pagecache, dentries, inodes 모두 해제
- 플러싱
1. Page Cache 란?
Linux 는 I/O 성능을 높이기 위해 Page Cache 를 사용한다.
물리적인 저장/통신 장치와 데이터를 주고 받을 때 메모리에 먼저 적제한 후에 데이터를 주고 받는데, 동일한 데이터에 대해 접근 할 경우 메모리에서 바로 가져오도록 하여 I/O 성능을 높이기 위함이다. 이를 Page 단위로 관리하여 흔히 Page Cache 라고 한다.
한번이라도 데이터를 읽거나 쓴 적이 있다면 메모리는 Page Cache 에 적재되고
drop_caches 는 non destructive operation 이기 때문에 자주써도 손실이 발생하지 않는다.
캐쉬 메모리중 write buffer 라는 파일쓰기 대기버퍼(dirty cache 라고함) , 이러한 것들은 drop_cache 로 사라지지 않는다.
sync 명령어는 이러한 write buffer 내용을 디스크에 쓰고 drop 할수 있는 cache 로 바꾼다.
참고 : https://blog.lael.be/post/1090
2. vfs_cache_pressure
vfs_cache_pressure
참고
제타위키 : 리눅스 캐시 메모리 비우기 : https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EC%BA%90%EC%8B%9C_%EB%A9%94%EB%AA%A8%EB%A6%AC_%EB%B9%84%EC%9A%B0%EA%B8%B0
리눅스의 페이지 캐시와 버퍼 캐시: https://brunch.co.kr/@alden/25
https://brunch.co.kr/@alden/14
'리눅스커널' 카테고리의 다른 글
[Linux]Improving performance/Boot process (0) | 2018.10.03 |
---|---|
udev (0) | 2017.03.15 |
[gcc] floating point ABI 에 대해서 (0) | 2017.03.14 |
rootfs (0) | 2016.11.15 |
DTB (비글본) (0) | 2016.09.20 |