리눅스 명목메모리사용률, 실질메모리사용률

(리눅스 메모리 사용량 (명목, 실질)에서 넘어옴)
nominal memory usage, 명목 메모리 사용량
actual memory usage, 실질 메모리 사용량
nominal memory usage ratio, 명목 메모리 사용률
actual memory usage ratio, 실질 메모리 사용률, 실제 메모리 사용률 (리눅스)

1 개요[ | ]

  • 리눅스는 유휴 공간을 캐시 영역으로 잡아두는 습성이 있다. (...)[1]
  • 실질적인 의미의 메모리사용률을 구하려면 캐시 영역도 유휴 메모리로 봐야 한다. ★
명목메모리 사용률 = used / total = ( total - free ) / total
실질메모리 사용률 = used2 / total = ( total - free2[2] ) / total = ( total - free - buffers - cached) / total
  • free 열의 두번째 행이 실질적인 유휴메모리 용량이다.

Free -m.2.png

2 예시 1[ | ]

[root@localhost1 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1016828     933428      83400      31380      63516     536812
-/+ buffers/cache:     333100     683728
Swap:       524284       1984     522300
  • 전체 용량 = 1016828
  • 명목 여유 메모리 = 83400
  • 실질 여유 메모리 = 683728 ( = 83400 + 63516 + 536812 )

3 예시 2 (명목 100%)[ | ]

[root@localhost2 ~]# free -g
             total       used       free     shared    buffers     cached
Mem:           125        125          0          0          1         96
-/+ buffers/cache:         26         99
Swap:            7          1          6
  • 전체 용량 = 125 GB
  • 명목 사용량 = 125 GB, 명목 유휴량 = 0 GB, 명목 사용률 = 100.0%
  • 실질 사용량 = 26 GB, 실질 유휴량 = 99 GB, 실질 사용률 = 20.8%

4 스크립트[ | ]

  • bash 기본 계산기능 활용한 스크립트. 소수점 버림
TOTAL=`free | grep ^Mem | awk '{print $2}'`
USED1=`free | grep ^Mem | awk '{print $3}'`
USED2=`free | grep ^-/+ | awk '{print $3}'`
NOMINAL=$((100*USED1/TOTAL))
ACTUAL=$((100*USED2/TOTAL))
echo NOMINAL=${NOMINAL}% ACTUAL=${ACTUAL}%
  • bc 활용한 스크립트. 소수점까지 계산가능
TOTAL=`free | grep ^Mem | awk '{print $2}'`
USED1=`free | grep ^Mem | awk '{print $3}'`
USED2=`free | grep ^-/+ | awk '{print $3}'`
NOMINAL=`echo "100*$USED1/$TOTAL" | bc -l`
ACTUAL=`echo "100*$USED2/$TOTAL" | bc -l`
echo NOMINAL=${NOMINAL:0:5}% ACTUAL=${ACTUAL:0:5}%
[root@zetawiki ~]# free
             total       used       free     shared    buffers     cached
Mem:       1016828     949980      66848      31384      88300     523012
-/+ buffers/cache:     338668     678160
Swap:       524284       1964     522320
[root@zetawiki ~]# TOTAL=`free | grep ^Mem | awk '{print $2}'`
[root@zetawiki ~]# USED1=`free | grep ^Mem | awk '{print $3}'`
[root@zetawiki ~]# USED2=`free | grep ^-/+ | awk '{print $3}'`
[root@zetawiki ~]# NOMINAL=`echo "100*$USED1/$TOTAL" | bc -l`
[root@zetawiki ~]# ACTUAL=`echo "100*$USED2/$TOTAL" | bc -l`
[root@zetawiki ~]# echo NOMINAL=${NOMINAL:0:5}% ACTUAL=${ACTUAL:0:5}%
NOMINAL=92.86% ACTUAL=33.31%
→ 명목 메모리 사용률 92.86%
→ 실질 메모리 사용률 33.31%

5 같이 보기[ | ]

6 참고[ | ]

  1. 남는 메모리를 최대한 캐시로 활용하면 성능향상에 도움이 된다. 아마 윈도우도 마찬가지일 것이다. 다만 윈도우는 임시 캐시 영역을 유휴 공간을 표시해주는 것으로 추정된다. 반대로 리눅스 쪽이 지나치게 솔직하다고 해야 하나...
  2. free 명령어 실행결과 2행에 있는 free 값(버퍼+캐시 포함)
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}