"리눅스 명목메모리사용률, 실질메모리사용률"의 두 판 사이의 차이

잔글 (112.216.3.62(토론)의 편집을 Jmnote bot의 마지막 판으로 되돌림)
52번째 줄: 52번째 줄:
</source>
</source>
<source lang='console'>
<source lang='console'>
[root@aaaa ~]# MEM_TOTAL=`free | grep ^Mem | awk '{print $2}'`
[root@zetawiki ~]# MEM_TOTAL=`free | grep ^Mem | awk '{print $2}'`
[root@zetawiki ~]# MEM_FREE1=`free | grep ^Mem | awk '{print $4}'`
[root@zetawiki ~]# MEM_FREE1=`free | grep ^Mem | awk '{print $4}'`
[root@zetawiki ~]# MEM_FREE2=`free | grep ^-/+ | awk '{print $4}'`
[root@zetawiki ~]# MEM_FREE2=`free | grep ^-/+ | awk '{print $4}'`

2016년 4월 27일 (수) 16:58 판

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

1 개요

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

2 예시 1

[root@localhost1 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:        354636     145920     208715          0       1695      10028
-/+ buffers/cache:     134195     220440
Swap:       133195          0     133195
  • 전체 용량 = 354636
  • 명목 여유 메모리 = 208715
  • 실질 여유 메모리 = 220440 (≒208715+1695+10028)

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 스크립트

MEM_TOTAL=`free | grep ^Mem | awk '{print $2}'`
MEM_FREE1=`free | grep ^Mem | awk '{print $4}'`
MEM_FREE2=`free | grep ^-/+ | awk '{print $4}'`
MEM_NOMINAL=`echo "100-(100*$MEM_FREE1/$MEM_TOTAL)" | bc -l`
MEM_ACTUAL=`echo "100-(100*$MEM_FREE2/$MEM_TOTAL)" | bc -l`
echo NOMINAL=${MEM_NOMINAL:0:5}% ACTUAL=${MEM_ACTUAL:0:5}%
[root@zetawiki ~]# free
             total       used       free     shared    buffers     cached
Mem:       1048576    1040180       8396          0      62796     101372
-/+ buffers/cache:     876012     172564
Swap:      2031608      52680    1978928
[root@zetawiki ~]# MEM_TOTAL=`free | grep ^Mem | awk '{print $2}'`
[root@zetawiki ~]# MEM_FREE1=`free | grep ^Mem | awk '{print $4}'`
[root@zetawiki ~]# MEM_FREE2=`free | grep ^-/+ | awk '{print $4}'`
[root@zetawiki ~]# MEM_NOMINAL=`echo "100-(100*$MEM_FREE1/$MEM_TOTAL)" | bc -l`
[root@zetawiki ~]# MEM_ACTUAL=`echo "100-(100*$MEM_FREE2/$MEM_TOTAL)" | bc -l`
[root@zetawiki ~]# echo NOMINAL=${MEM_NOMINAL:0:5}% ACTUAL=${MEM_ACTUAL:0:5}%
NOMINAL=99.19% ACTUAL=83.54%
→ 명목 메모리 사용률 99.19%
→ 실질 메모리 사용률 83.54%

5 같이 보기

6 주석

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

7 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}