
free는 Linux에서 현재 system memory 상태를 확인하기 위해 사용하는 대표적인 명령어임.
- Ubuntu 같은 Linux distribution에서는 별도의 설치 없이 기본적으로 사용할 수 있으며, RAM과 swap memory의 사용량을 간단히 확인할 수 있음.
참고로, macOS에는
기본적으로free명령어가 없음.
기본 사용법
가장 기본적인 사용법은 다음과 같음.
free
- 기본 출력은 byte 단위임.
- 일반적으로는
-hoption을 같이 사용함.
즉, 다음이 기본적인 사용법임:
free -h
-h는human-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
위 출력은 크게 두 부분으로 나누어 볼 수 있음.
Mem: 실제 물리 메모리, 즉 RAMSwap: 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 기준)
- 즉, 이 system에서 Linux가 사용할 수 있는 RAM이 약
- used : 현재 사용 중인 memory임.
- 여기에는 현재 실행 중인 process, kernel이 사용하는 memory 등이 포함됨.
- free : 완전히 비어 있는 memory임.
- Linux에서는
free값이 작다고 해서 바로 memory가 부족하다는 뜻은 아님. - Linux는 사용하지 않는 RAM을 그냥 비워두지 않고 file cache 등으로 활용함.
- 따라서
free보다available을 보는 것이 더 중요함.
- Linux에서는
- shared : 여러 process가 공유해서 사용하는 memory임.
- 예를 들어 shared memory,
tmpfs,/dev/shm등이 여기에 영향을 줄 수 있음. - 일반적인 상황에서는 크게 신경 쓰지 않아도 되는 값임.
- 예를 들어 shared memory,
- 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 양임.- 즉, 단순히 완전히 비어 있는
freememory만 보는 것이 아니라, 필요할 때 회수 가능한 cache 영역까지 고려한 값임.
위 예시에서는 다음과 같음.
free = 779Mi
buff/cache = 5.1Gi
available = 5.5Gi
- 완전히 비어 있는 memory는
779Mi뿐이지만, 실제로 사용할 수 있는 memory는 약5.5Gi임.
Swap 행의 의미
Swap은 RAM이 부족할 때 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
'Linux' 카테고리의 다른 글
| sftp - Secure FTP (0) | 2026.01.10 |
|---|---|
| openssh-server 설치하기 - Ubuntu (1) | 2026.01.10 |
| nvim에서 다른 app과 clipboard 같이 쓰기 (Linux의 xclip이용). (0) | 2026.01.09 |
| Linux 커널 관점에서 이해하는 Session, Process Group, Process, Thread와 Job Control의 실제 동작 (0) | 2026.01.09 |
| [zsh] zsh-vi-mode 설치 및 사용법 (0) | 2026.01.06 |