본문 바로가기
목차
Linux

Linux에서 메모리 상태 확인하기: free 명령어

by ds31x 2026. 6. 16.
728x90
반응형

 

free는 Linux에서 현재 system memory 상태를 확인하기 위해 사용하는 대표적인 명령어임.

  • Ubuntu 같은 Linux distribution에서는 별도의 설치 없이 기본적으로 사용할 수 있으며, RAM과 swap memory의 사용량을 간단히 확인할 수 있음.

참고로, macOS에는
기본적으로 free 명령어가 없음.

 


기본 사용법

가장 기본적인 사용법은 다음과 같음.

free
  • 기본 출력은 byte 단위임.
  • 일반적으로는 -h option을 같이 사용함.

즉, 다음이 기본적인 사용법임:

free -h
  • -hhuman-readable의 의미임.
  • 사람이 읽기 쉬운 단위인 KiB, MiB, GiB 등으로 출력해줌.

kibi-, mebi- 와 같은 binary multiples 의 prefix에 대한 자세한 내용은 다음을 참고:

https://dsaint31.me/mkdocs_site/CE/ch01/ch01_14_prefix

 

BME

Exbi Gibi Kibi Mebi Pebi Tebi SI Prefixes and IEC Binary Prefixes Prefixes for SI Units 우리가 일반적으로 사용하는 prefix들은 SI Unit (국제단위, gram, meter 등등)을 위한 것들이며 십진수 기반임. Prefix Symbol Factor Prefix S

dsaint31.me


출력 예시

               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       1.8Gi       779Mi       0.0Ki       5.1Gi       5.5Gi
Swap:             0B          0B          0B

위 출력은 크게 두 부분으로 나누어 볼 수 있음.

  1. Mem : 실제 물리 메모리, 즉 RAM
  2. Swap : RAM이 부족할 때 보조적으로 사용하는 disk 기반 memory 영역

Mem 행의 의미

이 행은 현재 RAM의 사용 상태를 나타냄.

               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       1.8Gi       779Mi       0.0Ki       5.1Gi       5.5Gi
  • total : 전체 물리 메모리 크기임.
    • 즉, 이 system에서 Linux가 사용할 수 있는 RAM이 약 7.7GiB라는 의미임.
    • binary byte 를 사용함 (1024 기준)
  • used : 현재 사용 중인 memory임.
    • 여기에는 현재 실행 중인 process, kernel이 사용하는 memory 등이 포함됨.
  • free : 완전히 비어 있는 memory임.
    • Linux에서는 free 값이 작다고 해서 바로 memory가 부족하다는 뜻은 아님.
    • Linux는 사용하지 않는 RAM을 그냥 비워두지 않고 file cache 등으로 활용함.
    • 따라서 free보다 available을 보는 것이 더 중요함.
  • shared : 여러 process가 공유해서 사용하는 memory임.
    • 예를 들어 shared memory, tmpfs, /dev/shm 등이 여기에 영향을 줄 수 있음.
    • 일반적인 상황에서는 크게 신경 쓰지 않아도 되는 값임.
  • buff/cache : buffer와 cache로 사용 중인 memory임.
    • Linux는 disk I/O 성능을 높이기 위해 남는 RAM을 file cache로 활용함.
    • 예를 들어 한 번 읽은 file을 memory에 cache해두면, 다음에 같은 file을 읽을 때 disk에서 다시 읽지 않고 RAM에서 빠르게 가져올 수 있음.
    • 따라서 buff/cache가 크다고 해서 나쁜 상태가 아님.
    • 필요한 경우 이 cache 영역의 상당 부분은 회수되어 application에 제공될 수 있음.
  • available : 가장 중요하게 봐야 하는 값임.
    • available은 현재 system에서 새 process나 기존 process가 추가로 사용할 수 있을 것으로 예상되는 memory 양임.
    • 즉, 단순히 완전히 비어 있는 free memory만 보는 것이 아니라, 필요할 때 회수 가능한 cache 영역까지 고려한 값임.

위 예시에서는 다음과 같음.

free       = 779Mi
buff/cache = 5.1Gi
available  = 5.5Gi
  • 완전히 비어 있는 memory는 779Mi뿐이지만, 실제로 사용할 수 있는 memory는 약 5.5Gi임.

Swap 행의 의미

SwapRAM이 부족할 때 disk 공간 일부를 memory처럼 사용하는 영역임.

 

하지만 disk는 RAM보다 훨씬 느리기 때문에 swap 사용량이 많아지면 system 성능이 크게 떨어질 수 있음.

               total        used        free      
Swap:             0B          0B          0B

 

위 예시에서는 swap이 아예 설정되어 있지 않음.

Swap total = 0B
Swap used  = 0B
Swap free  = 0B

 

즉, 이 system은 swap 없이 RAM만으로 동작하고 있음.

  • swap 사용량(used)이 계속 증가한다면 RAM이 부족하거나 memory pressure가 있는 상태일 수 있음.
  • 특히 swap 사용량이 많고 system이 느려진다면 memory 부족을 의미함.

참고: 주기적으로 확인하기

메모리 상태를 반복해서 확인하고 싶다면 watch 명령어와 함께 사용할 수 있음.

watch -n 1 free -h

 

위 명령어는 1초마다 free -h를 다시 실행하여 memory 상태를 갱신해서 보여줌.


같이 보면 좋은 자료들

2023.10.02 - [분류 전체보기] - Shell 과 CLI 명령어 요약 정리

 

Shell 과 CLI 명령어 요약 정리

Shell 이란?https://dsaint31.me/mkdocs_site/OS/console_terminal_shell_kernel/?h=shell#shell BMEConsole, Terminal, and Shell Console: 컴퓨터(주로 서버)에 command를 작성하여 입력하고 그 결과를 확인할 수 있는 (물리적) 입출력

ds31x.tistory.com

 

728x90