free 개요
`free` 명령어는 운영체제가 현재 메모리를 어떻게 관리하고 있는지에 대한 스냅샷을 제공합니다. 이는 시스템이 메모리 부족으로 인해 성능 저하를 겪고 있는지, 아니면 충분한 여유 메모리를 가지고 있는지를 판단하는 데 도움을 줍니다.
메모리 유형 이해
`free` 명령어의 출력을 올바르게 해석하려면 물리 메모리(RAM)와 스왑 메모리, 그리고 버퍼/캐시의 개념을 이해하는 것이 중요합니다.
주요 메모리 항목
- Mem (물리 메모리): 시스템에 설치된 RAM의 총량입니다. 운영체제와 실행 중인 프로그램들이 사용하는 실제 메모리 공간입니다.
- Swap (스왑 메모리): 물리 메모리가 부족할 때 사용되는 하드 디스크의 공간입니다. RAM처럼 사용되지만 속도가 훨씬 느립니다.
- total: 총 메모리 또는 스왑 공간입니다.
- used: 현재 사용 중인 메모리 또는 스왑 공간입니다.
- free: 사용 가능한 메모리 또는 스왑 공간입니다.
- shared: 여러 프로세스가 공유하는 메모리입니다.
- buff/cache: 커널 버퍼와 페이지 캐시로 사용되는 메모리입니다. 이는 실제 '낭비되는' 메모리가 아니며, 필요할 경우 언제든지 애플리케이션에 할당될 수 있는 '여유' 메모리에 가깝습니다.
- available: 새로운 애플리케이션이 추가 요청 시 할당될 수 있는 메모리 양입니다. `free` 필드보다 더 정확한 '사용 가능한' 메모리 양을 나타냅니다. (Linux 커널 3.14 이상에서 제공)
주요 free 명령어 옵션
`free` 명령어는 다양한 옵션을 통해 출력 단위를 변경하거나, 특정 정보를 필터링하여 표시할 수 있습니다.
1. 출력 단위 옵션
2. 기타 유용한 옵션
생성된 명령어:
명령어를 조합해 보세요.
설명:
`free` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
`free` 명령어의 다양한 활용 예시들을 통해 시스템 메모리 사용 현황을 효과적으로 모니터링하고 분석해 보세요.
메모리 정보 읽기 쉬운 형식으로 출력
free -h
가장 흔하게 사용되는 옵션으로, 메모리 정보를 MB 또는 GB 단위로 자동으로 변환하여 보기 쉽게 출력합니다.
메모리 정보를 메가바이트 단위로 출력
free -m
명확하게 메가바이트(MB) 단위로 메모리 사용량을 확인하고 싶을 때 사용합니다.
5초 간격으로 3번 메모리 정보 업데이트
free -h -s 5 -c 3
시스템의 메모리 변화를 단시간 내에 관찰할 때 유용합니다. (예: 특정 프로그램을 실행하면서 메모리 사용량 변화 관찰)
버퍼와 캐시를 분리하여 출력 (MB 단위)
free -m -w
버퍼와 캐시 메모리를 독립적인 컬럼으로 보고 싶을 때 사용합니다. `-w` 옵션은 주로 디버깅이나 상세 분석 시 사용됩니다.
유닉스 타임스탬프와 함께 메모리 사용량 기록 (스크립트 예시)
echo "$(date +%s),$(free -m | grep Mem | awk '{print $2,$3,$4,$6,$7}')" >> mem_log.csv
쉘 스크립트에서 주기적으로 메모리 사용량을 기록하여 시계열 데이터를 만들 때 활용할 수 있습니다.