Published 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
반응형

'리눅스 > Command' 카테고리의 다른 글

리눅스 sed 명령어로 특정 문자가 포함된 라인부터 출력하기  (2) 2021.08.22
리눅스 grep 명령어  (0) 2021.06.08
리눅스 find 명령어  (0) 2020.12.13
리눅스 uniq 명령어  (0) 2020.11.09
리눅스 sort 명령어  (2) 2020.11.04
복사했습니다!