← 아티클 목록

리눅스 메모리 buff cache — free의 available 이해하기

2028-05-22#linux#메모리#성능

free -h를 봤더니 메모리가 거의 다 used라 깜짝 놀란 적 있을 겁니다. 하지만 대부분은 정상입니다. 헷갈리는 핵심은 딱 하나, buff/cache는 비어 있는 메모리나 다름없다는 사실입니다. 진짜 봐야 할 값은 available입니다.

buff/cache는 "빌려 쓰는" 메모리

리눅스는 남는 메모리를 놀리지 않습니다. 한 번 읽은 파일을 메모리에 캐싱(page cache)해 다음 접근을 빠르게 합니다. 이게 buff/cache입니다. 핵심은, 앱이 메모리를 더 요구하면 커널이 이 캐시를 즉시 반납한다는 점입니다. 그래서 캐시는 "쓰는 중이지만 필요하면 바로 내줄 수 있는" 메모리입니다.

항목의미부족 판단에 쓰나
used앱이 실제 점유단독으로는 오해 유발
buff/cache파일 캐시·버퍼필요시 반납됨, 부족 아님
free한 번도 안 쓴 빈 메모리보통 작게 유지됨
available앱이 새로 쓸 수 있는 추정량이걸 봐야 함

free가 작은 건 정상입니다. 리눅스는 "안 쓰는 메모리는 낭비"라는 철학이라 빈 메모리를 캐시로 채워둡니다.

free 출력 읽기

로컬 터미널
free -h
OUTPUT
              total        used        free      shared  buff/cache   available
Mem:           15Gi       4.2Gi       0.4Gi       0.1Gi        10Gi        10Gi

free0.4Gi뿐이라 위험해 보이지만, available10Gi입니다. buff/cache10Gi 대부분이 필요하면 반납되기 때문입니다. 즉 새 앱은 약 10Gi까지 쓸 수 있어 메모리는 충분합니다.

진짜 부족한 상황은 available이 작아지고 swapused가 늘어날 때입니다.

로컬 터미널
free -h               # available 컬럼을 먼저 본다
cat /proc/meminfo     # MemAvailable 등 상세 항목

캐시는 일부러 비우지 마라

"캐시가 아까우니 비우자"며 drop_caches를 습관적으로 쓰는 건 보통 손해입니다. 캐시를 날리면 다음 파일 접근이 다시 느려집니다. 커널이 알아서 관리하니, available이 충분하면 손대지 않는 게 정답입니다.

요점 정리

  • buff/cache는 파일 캐시 — 필요하면 즉시 반납되는, 사실상 여유 메모리.
  • free가 작은 건 정상. 리눅스는 빈 메모리를 캐시로 채운다.
  • 메모리 여유는 free가 아니라 available 로 판단한다.
  • 진짜 위험 신호는 available 급감 + swap used 증가.

free·/proc/meminfo·swap을 직접 들여다보며 메모리 상태를 읽는 실습은 리눅스 트랙에서 회원가입 없이 무료로 익힐 수 있습니다.