free — 메모리 사용량 확인
Linux / 서비스 및 프로세스 관리 / free.html
💬 "free 명령어"
free는 메모리와 스왑 사용량을 보여줍니다. available 값이 실제 여유로 판단하는 지표입니다.
buff/cache는 회수 가능하므로 free가 낮아도 괜찮을 수 있습니다.
- total: 전체 물리 메모리입니다.
- used: 프로세스가 쓰는 메모리입니다.
- free: 완전히 비어 있는 메모리입니다. 이 값만 보면 오해합니다.
- available: 새 프로세스가 쓸 수 있는 추정치로, 이 값을 봅니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-h | 사람이 읽기 쉬운 단위로 출력 |
-m / -g | MB / GB 단위로 출력 |
-s <초> | 지정 초마다 반복 출력 |
-t | 합계 줄을 추가 |
필수 명령어 조합 3가지
free -h— 현재 메모리 상태 확인(가장 기본)free -h -s 5— 5초마다 반복해 추세 확인free -m | awk 'NR==2{print $7}'— available 값을 추출해 감시에 사용
💬 "장시간 운영 중인 서버에서 점검 예시 하나만 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 현재 상태
available과 스왑 사용을 확인합니다.
free -h
2단계 · 추세 확인
반복 출력으로 감소 추세를 봅니다.
free -h -s 5
3단계 · 원인 확인
메모리를 많이 쓰는 프로세스를 찾습니다.
ps -eo pid,%mem,rss,comm --sort=-%mem | head
실무에서는 이렇게 씁니다
1. OOM 예방 점검
상황 — 메모리가 부족해 프로세스가 죽는 일이 반복됩니다.
free -h && dmesg -T | grep -i oom | tail -3
결과 — available이 매우 낮고 스왑을 크게 쓰면 부족 상태입니다.
포인트 — 앱 메모리 제한(php-fpm pm.max_children 등)이나 서버 증설을 검토합니다.
2. 캐시 때문에 겁먹지 않기
상황 — free가 거의 0이라 장애로 오해했습니다.
free -h
결과 — buff/cache가 큰 부분을 차지하고 available은 충분함을 확인합니다.
포인트 — 리눅스는 남는 메모리를 캐시로 쓰므로 available 기준으로 판단합니다.
주의할 점
- free 값이 작다고 바로 메모리 부족이 아닙니다. available을 기준으로 봅니다.
- 스왑을 크게 쓰면 성능이 급격히 떨어집니다(iowait 증가).
- 컨테이너 환경에서는 호스트 메모리와 cgroup 제한이 달라 주의합니다.
실제 실행 화면
메모리와 스왑 사용량을 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.