/proc/meminfo 에서 내용을 가져와서 리눅스 전체 메모리 현황을 보여 줌
# free -h
total used free shared buff/cache available
Mem: 15G 2.1G 10G 768M 3.0G 12G
Swap: 15G 0B 15G
w 옵션을 사용하면 buffer 와 cache 를 분리하여 확인이 가능
# free -wh
total used free shared buffers cache available
Mem: 15G 2.1G 10G 768M 191M 2.8G 12G
Swap: 15G 0B 15G
- Mem
- total: 설치 된 총 메모리의 크기
- used: 시스템에서 사용중인 메모리 (total 에서 free와 buff/cache를 제외한 용량)
- free: 시스템에서 사용되지 않는 메모리 (total에서 used와 buff/cache를 제외한 용량)
- share: 프로세스 사이에서 공유되는 메모리 (주로 tmpfs 에서 사용)
- buff/cache: 버퍼와 캐시로 사용중인 메모리 (I/O 성능 향상을 위해 커널이 사용하는 영역)
- buffers: 커널 버퍼로 사용중인 메모리
- super block, inode block 같은 파일이 아닌 파일 시스템 관리를 위한 메타데이터를 저장
- cache: 페이지 캐시와 slab으로 사용중인 메모리
- 디스크로부터 읽어 들인 데이터를 저장
- slab - 커널이 dentry cache, inode cache등을 위해 내부적으로 사용하는 영역
- buffers: 커널 버퍼로 사용중인 메모리
- available: 새로운 프로세스에 할당 가능한 메모리
- Swap
- total: 설치된 스왑 총 크기
- used: 사용중인 스왑 크기
- free: 사용하지 않는 스왑 크기
스와핑이 자주 발생하는 경우 메모리 증설을 고려 (/proc/meminfo 에서 SwapCached 항목으로 확인 가능)
- swap out: 메모리에 있는 데이터 중 자주 사용하지 않는 데이터를 swap 공간으로 이동
- swap in: swap에 있던 데이터를 프로세스가 사용하기 위해 메모리로 가져오은 작업