컴퓨터 기본/리눅스(Linux)
[Linux] buffer cache 파일 확인하기
엔지니어-
2022. 2. 8. 22:31
반응형
개요 (How to see buffered and cached data)
perf(Performance Counter for Linux) 명령어를 사용해 리눅스 buffer cache에 올라가 있는 파일을 확인하는 방법입니다.
free -h 명령어로 메모리를 확인하다가 buffer/cache가 점유하고 있는 메모리가 많은 것을 보고
buffer/cache flush 방법을 찾다가 현재 메모리에 캐싱되어 있는 파일을 확인하는 방법은 없는지 궁금해 찾아보게 되었습니다.
perf 설치 및 buffer cache에 대한 내용은 아래 링크를 참고해주세요.
- 테스트 OS: Ubuntu 20.04
- perf 설치 및 설명 참고자료: https://jjudrgn.tistory.com/24
- 리눅스 buffer cache 설명자료: https://brunch.co.kr/@dreaminz/2

Buffer cache에 올라간 파일 inode number 확인하기
- perf 명령어로 buffer cache에 올라간 파일을 샘플링
- ino(inode number)로 파일 추적
- 아래 출력을 보면 "4016fc, 800015" 2개의 ino 확인 가능
sudo perf record -a -e filemap:mm\_filemap\_add\_to\_page\_cache sleep 20
sudo perf script
>> 출력
ftdc 185217 \[000\] 700131.660265: filemap:mm\_filemap\_add\_to\_page\_cache: dev 8:21 ino 4016fc page=0x29b96e pfn=2734446 ofs=4096
ftdc 185217 \[000\] 700131.660268: filemap:mm\_filemap\_add\_to\_page\_cache: dev 8:21 ino 4016fc page=0x245c11 pfn=2382865 ofs=8192
jbd2/sdb5-8 221 \[000\] 700134.390865: filemap:mm\_filemap\_add\_to\_page\_cache: dev 0:3 ino 800015 page=0x41be48 pfn=4308552 ofs=127573897216
ftdc 185217 \[000\] 700141.661083: filemap:mm\_filemap\_add\_to\_page\_cache: dev 8:21 ino 4016fb page=0x200945 pfn=2099525 ofs=0
ftdc 185217 \[000\] 700141.661092: filemap:mm\_filemap\_add\_to\_page\_cache: dev 8:21 ino 4016fb page=0x19eed6 pfn=1699542 ofs=4096
ftdc 185217 \[000\] 700141.661095: filemap:mm\_filemap\_add\_to\_page\_cache: dev 8:21 ino 4016fb page=0x3ba7ae pfn=3909550 ofs=8192
inode number를 이용한 파일 추적
- find 명령어에 -mount, -inum 옵션을 사용해 파일 추적
sudo find / -mount -inum $((0x4016fc))
>> 출력
/var/lib/mongodb/diagnostic.data/metrics.interim
sudo find / -mount -inum $((0x800015))
>> 출력
/var/lib/python3.8/site-packages/botocore/data/logs/2014-03-28/service-2.json
참고자료
- https://unix.stackexchange.com/questions/106478/how-to-see-buffered-and-cached-data
- jjudrgn’s note, perf 설명 및 간단 사용법, https://jjudrgn.tistory.com/24
- doz님 브런치, free 명령어.. 알고 쓰시나요?, https://brunch.co.kr/@dreaminz/2
반응형