[linux] 리눅스 서버의 메모리 사용량과 가용 메모리를 확인하는 방법

free 커맨드 사용

터미널에서 free 커맨드를 사용하면 현재 메모리 사용 정보를 확인할 수 있습니다.

free -m
$> free -m
               total        used        free      shared  buff/cache   available
Mem:            3789         956         207           6        2625        2635
Swap:           1023           6        1017

-m 옵션은 메가 바이트 단위로 표시하는 옵션입니다. 기본 값은 바이트입니다.

Mem 행은 메모리 사용 정보를 표시하고, Swap 행은 디스크 스왑 정보를 표시합니다. 물리 메모리 사용 정보가 중요하므로 Mem 행의 정보를 정확히 알아야 합니다.

전체 물리 메모리는 3,789Mb이고 956Mb이 사용되고 있다고 표시됩니다. 그리고 가용 메모리는 207Mb로 표시가 됩니다. 남은 메모리가 207Mb로 표시되지만 실제로 207Mb가 남은 것은 아닙니다.

실제 가용 메모리는 정확하게는 3,581Mb입니다.
리눅스는 디스크 입출력 성능을 향상시키기 위해 디스크 캐싱에 대한 가용 메모리를 사용합니다. buff/cache 컬럼에 표시되는 값이 디스크 캐시에 사용된 메모리 공간입니다.

캐시에 사용한 메모리 공간은 프로그램이 메모리를 요청할 경우 즉시 사용가능하도록 가용 메모리 공간으로 반환됩니다. 사용하고는 있지만 언제든지 가용 메모리로 사용할 수 있습니다.

따라서 free 207Mb, buff/cache 2625Mb를 합한 메모리 크기가 사용하지 않고 비어있는 메모리 공간이 됩니다.

total - used 를 하면 실제 가용 메모리는 2833Mb가 됩니다. 이 값은 free + buff/cache와 같아야 하지만 약간의 오차가 있습니다. free + buff/cache는 2832Mb가 되는데 -m 옵션으로 메가 바이트 단위로 표시하면서 오차가 발생한 것이고 실제로 차이가 있는 것은 아닙니다.