free — 메모리 사용량 확인

Linux / 서비스 및 프로세스 관리 / free.html

서비스 및 프로세스 관리원문등록 2026-10-18

💬 "free 명령어"

free는 메모리와 스왑 사용량을 보여줍니다. available 값이 실제 여유로 판단하는 지표입니다.

buff/cache는 회수 가능하므로 free가 낮아도 괜찮을 수 있습니다.

  • total: 전체 물리 메모리입니다.
  • used: 프로세스가 쓰는 메모리입니다.
  • free: 완전히 비어 있는 메모리입니다. 이 값만 보면 오해합니다.
  • available: 새 프로세스가 쓸 수 있는 추정치로, 이 값을 봅니다.

자주 쓰는 옵션

옵션설명
-h사람이 읽기 쉬운 단위로 출력
-m / -gMB / 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 제한이 달라 주의합니다.

실제 실행 화면

메모리와 스왑 사용량을 확인한 결과입니다.

free 명령어 실행 결과: 메모리·스왑 사용량

실제 운영 중인 서버

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