리눅스/Command

리눅스 free 명령어

남제이입니다! 2021. 12. 25. 06:46
728x90
반응형

free 명령어

free 명령어는 man 페이지에서 이렇게 정의되어 있다.

커널에서 사용하는 버퍼와 캐시뿐만 아니라 시스템에서 사용 가능한 물리적 메모리와 스왑 메모리의 총량을 표시합니다. 또한, free 명령어는 /proc/meminfo 의 정보를 가져와 분석하여 수집된다.

쉽게 말해, 리눅스 시스템에서 전체적인 메모리에 대한 현황을 보여주는 명령어라고 생각하면 된다.

[사용법]
$ free [옵션]

[옵션]
-b, -k, -m, -g : 바이트, 킬로바이트, 메가바이트, 기가바이트 단위로 출력
--tera, --peta : 테라바이트, 페타바이트 단위로 출력
-h, --human : 자동으로 단위를 조정해서 출력
-w, --wide : 와이드 모드로 실행. cache와 buffers 를 따로 출력
-c, --count : 지정된 반복만큼 결과 출력
-l, --lohi : 최고/최저 메모리 상황 출력. Low 와 High 로 구분되어 출력
-s, --sceonds : 지정된 n초 마다 출력
-t, --total : 합계가 계산된 결과를 Total line 에 출력

free 명령어를 사용하면 다음과 같이 결과를 확인할 수 있다.

$ free
              total        used        free      shared  buff/cache   available
Mem:         498684       80788      304432        4540      113464      400244
Swap:       2097148           0     2097148
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           486M         78M        297M        4.4M        110M        391M
Swap:          2.0G          0B        2.0G

free 명령어를 실행하게 되면 물리 메모리와 스왑 메모리에 대해 각 컬럼에 대한 값들이 나오게 된다.

  • [total]
    설치된 총 메모리의 크기 (/proc/meminfo 의 MemTotal 및 SwapTotal)
  • [used]
    사용중인 메모리 크기 또는 사용중인 스왑 메모리 크기 (total - free - buffers - cache 으로 계산)
  • [free]
    사용하지 않은 메모리 크기 또는 사용되지 않은 스왑 메모리 크기 (/proc/meminfo 의 MemFree 및 SwapFree)
    total - used - buff/cache
  • [shared]
    주로 tmpfs(메모리 파일시스템) 에서 사용하는 메모리. 여러 프로세스에서 사용할 수 있는 공유 메모리
  • [buffers]
    커널 buffer 로 사용중인 메모리
  • [cache]
    page cache 와 slab 으로 사용중인 메모리
  • [buff/cache]
    버퍼와 캐시 메모리의 합
  • [available]
    Swapping 없이 새 응용 프로그램을 사용하는 데 사용할 수 있는 메모리의 크기.
    기존에 존재하던 -/+buffer/cache 부분이 사라지고 생겼다.

 

이렇게 free 명령어에 대한 사용 방법과 각 컬럼에 대한 정리를 해봤다.
그리고 free 명령어를 통해 메모리에 대해 알 수 있는 데 free 명령어 뿐만 아니라 다양한 명령어를 통해
메모리에 대해 확인해볼 수 있다는 것을 알아두면 좋다.

추가로 free 명령어는 /proc/meminfo 에 대한 정보를 수집해 결과를 보여주기 때문에
/proc/meminfo 에는 어떤 정보가 들어있는 지 확인해봤다.

$ cat /proc/meminfo
MemTotal:         498684 kB
MemFree:          266940 kB
MemAvailable:     395444 kB
Buffers:            2068 kB
Cached:           121924 kB
SwapCached:            0 kB
Active:            79740 kB
Inactive:          79604 kB
Active(anon):      35572 kB
Inactive(anon):     4376 kB
Active(file):      44168 kB
Inactive(file):    75228 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         35392 kB
Mapped:            22468 kB
Shmem:              4596 kB
Slab:              45728 kB
SReclaimable:      22220 kB
SUnreclaim:        23508 kB
KernelStack:        1568 kB
PageTables:         3996 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2346488 kB
Committed_AS:     291928 kB
VmallocTotal:   34359738367 kB
VmallocUsed:        5028 kB
VmallocChunk:   34359730176 kB
Percpu:              164 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       47040 kB
DirectMap2M:      477184 kB

free 명령어에서 사용하지 않는 부분도 많이 보인다.
그래서 /proc/meminfo 에서는 어떤 내용을 보여주는 지에 대해서도 알아보면 좋을 것 같다.

 

- 참고 사이트 -

https://brunch.co.kr/@dreaminz/2

 

2. free 명령어.. 알고 쓰시나요?

이번 시간에는 free 명령어를 통한 결과를 알아보고 이해하는 시간을 갖도록 하자. free 명령어가 뭐야? free 명령어는 리눅스 시스템에서 메모리의 전체적인 현황을 빠르게 살펴볼 수 있는 명령어

brunch.co.kr

https://www.whatap.io/ko/blog/37/

 

리눅스 free 명령어로 메모리 상태 확인하기 | 와탭 블로그

free 명령어 결과의 각 컬럼에 대해 자세히 알아보고 meminfo를 참조하여 메모리 현황을 파악해 봅시다.

www.whatap.io

 

728x90
반응형