free 명령어를 사용하여 리눅스의 메모리 사용량 확인
free 명령어는 리눅스 시스템의 메모리 사용량을 확인할 수 있는 명령어이다.
free 명령어로 사용할 수 있는 옵션은 아래와 같다.
다만 -b -k -m -g 옵션을 사용하여 메모리 사용량을 확인할 때는 단위변환에 의한 계산 때문에 값이
이상하게 보일 수도 있다.
예를들어 보자
# free -k 명령어를 사용하면 아래처럼 메모리 총 용량이 8193500 KB 인 것을 볼 수 있다.
# free -m 명령어를 사용하면 8001 MB 인 것을 볼 수 있다.
# free -g 명령어를 사용하면 7 GB 인 것을 볼 수 있다.
8193500 KB 에서 MB로 변환을 하려면 8193500 / 1024 로 계산이 되어 8001.4648375 가 나오므로 8001 MB가 맞다.
다시 8001 MB 에서 GB로 변환을 하려면 8001 / 1024 로 계산이 되어 7.8134765 가 나오므로 7 GB로 계산이 되어버린다.
즉, free 명령어로 메모리 사용량을 볼 때는 한 눈에 쉽게 보이는 -g 옵션만 사용할게 아니고,
-k 명령어도 사용하여 값을 잘 확인해야 한다.
리눅스는 유휴 공간을 캐시 영역으로 잡아두는 습성이 있다.
Mem : total 에 해당하는 8193500 이 물리적인 메모리의 총 용량이다.
Mem : used 에 해당하는 8013080 이 시스템에서 사용하고 있는 명목 사용량이다.
Mem : free 에 해당하는 180420 이 시스템의 명목 유휴량이다.
Mem : shared 는 공유 메모리로 processor , thread 간 통신을 위해 사용된다.
Mem : buffers 에 해당하는 162140 이 응용 프로그램들에 의해 버퍼된 메모리의 총량이다.
- buffers 는 임시 저장소라고 보면 된다.
예를들어 파일에 어떤 것을 작성하라고 명령이 내려지면 리눅스는 즉시 파일에 데이터를 작성하지 않고
버퍼에 담아두었다가 CPU가 바쁘지 않을 때 Write를 한다. 이럴 때 사용하는 것이 buffers 이다.
Mem : cached 에 해당하는 6402320 이 캐싱에 사용한 메모리 총량이다.
- cached 는 메모리에서 사용되었던 것 들을 잠시동안 보관하고 있는 곳이다.
cache 가 필요한 이유는 자주 사용하는 프로그램을 빠르게 실행하기 위해서다.
이렇게 하면 실행도 빨라지지만 하드디스크에 접근하는 횟수도 훨씬 줄어들 수 있다.
-/+ buffers/cache : used 에 해당하는 1448620 이 실제 사용중인 메모리 사용량이다.
-/+ buffers/cache : free 에 해당하는 6744880 이 실제 남은 메모리양이다.
즉 실제로 남은 메모리양 (사용 가능한 메모리양) 은 Mem : free + Mem : buffers + Mem : cached 이며,
이것은 -/+ buffers/cache : free 에 해당하는 값과 동일 하다.
백분율로 계산하려면 6744880 / 8193500 * 100 을 하면 된다.
실제 사용중인 메모리 양은 Mem : total - (Mem : free + Mem : buffers + Mem : cached) 이며,
이것은 (Mem : total) - (-/+ buffers/cache : free) 에 해당하는 값과 동일 하다.
백분율로 계산하려면 1448620 / 8193500 * 100 을 하면 된다.
아래는 통합 모니터링 솔루션인 CA UIM 을 통해 확인한 실제 메모리 사용률(%) 이다.
아래는 통합 모니터링 솔루션인 CA UIM 을 통해 확인한 실제 메모리 사용량(KB) 이다.
댓글