본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# Linux

[Linux] Free / Available of 'free' command

by iamlucia 2023. 11. 2.

 

 

 

 

linux 상에서 free 명령어를 쳐서 항상 가용메모리를 확인해왔다.

 

이때 출력되는 memory 메트릭에는 여러 개의 필드가 있는데 각 필드별로 정확한 의미를 정리하고자 한다.

 

참고 링크 1: https://www.turing.com/kb/how-to-use-the-linux-free-command   

참고 링크 2: https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/5/html/tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/chap-oracle_9i_and_10g_tuning_guide-memory_usage_and_page_cache

free -h

 

1.total : 시스템에 할당되어있는 물리 메모리의 총 크기

2. used : 기동 중인 프로그램 또는 프로세스가 현재 사용하고 있는 메모리 크기

3. free:  기동 중인 프로그램 또는 프로세스가 현재 사용하고 있지 않는 메모리 크기, 새로운 프로세스가 기동되면 해당 프로세스에 할당 가능

4. shared: 임시 tmpfs 파일에서 사용 중인 메모리 크기 (tmpfs 는 컴퓨터 메인 메모리에 파일을 저장하는 파일시스템으로, 하드드라이브와 같은 전통적인 스토리지와 비교하여 파일 접근이 더 빠르다는 장점이 있다) 

5. buff/cache: 최근에 사용된 데이터에 더 빨리 접근하고자 OS 커널이 해당 데이터를 저장하는 데에 쓰이는 메모리.  하드 드라이브에 있는 데이터에 접근하는  데에 걸리는 시간을 줄여주기 때문에, 컴퓨터 성능을 높여준다는 이점이 있다. 

6. available: 사용 가능한 메모리 자원에 대한 추정 값을 보여주는 필드. 이는 프로세스가 기동되거나 중지될 때 메모리가 풀리거나 할당됨에 따라 유동적으로 변할 수 있다. 

 

Free 와 Available 필드의 의미가 다소 이해하기 어려웠는데, 이에 대해 다른 블로그에서 비유를 든 부분이 있어서 첨부한다.

 

free 메모리가 집에 있는 '텅 비어있는 방'만을 의미한다면, available 메모리는 캐시/버퍼링을 위해 잠시 임시적으로 사용 중인 방과 비어있는 방을 포함해서 곧 채워질 수 있는 방의 총 갯수를 의미한다.

 

+ swap 메모리 공간은 무엇인가? 

물리적으로 사용할수 있는 메모리가 부족해지는 경우에,hdd 메모리를 이용하여 일부를 hdd에 저장해놓고 메모리 블럭에 공간이 생기면 메모리를 다시 이동시키는 식으로 데이터의 저장위치를 교환해서 쓸 수 있게 해주는 공간을 의미한다. 

 

위의 출력 결과에 swap 이 비활성화된 이유는 해당 서버는 kubernetes 의 노드로 사용 중이기 때문이다. swap이 활성화 된 경우, 갑자기 특정 컨테이너가 메모리 부족으로 swap을 쓰게 되면 해당 컨테이너의 속도가 느려질 수 있고 이는 예측이 불가능할 수 있다.. 

 

참고: kubernetes 에서는 현재 버전 기준 (1.22 v 부터~) swap 메모리 사용도 지원 중에 있다. 

'자기발전소 > # Linux' 카테고리의 다른 글

[Linux] Java 버전 변경 ( 8 -> 11)  (0) 2021.08.23
[Linux] ssh key 기반 인증  (0) 2021.02.21
[Linux] 디스크 관리하기  (1) 2021.01.26
Windows Subsystem for Linux(Windows 10) 설치 기록  (0) 2021.01.05
리눅스 아카이빙  (0) 2021.01.03