리눅스 여유 메모리 체크 관련
여유메모리를 판단하는데 그것보다는
free -mt ( Mega 단위로 표시 ) 명령어로 확인하는 것이 더 낫다.
[root@localhost ~]# free -mt
total used free shared buffers cached
Mem: 1769 1641 128 0 176 1351
-/+ buffers/cache: 113 1656
Swap: 4579 0 4579
Total: 6349 1641 4707
여기서 free 항목이 여유메모리이지만
실제로 메모리를 크게 잡아먹지 않는 데몬이 떠 있지 않아도 free 가 매우 적게 보이는 경향이 있다.
하지만 이것은 정상상태이다.
vmstat 1 10 ( 1초마다 10번 통계값을 출력 / 첫번째 출력값은 무시한다 why? 통계이므로 첫번째 값은 무시 )
[root@localhost ~]# vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 108 129356 181168 1383480 0 0 4 6 7 11 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1026 139 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1012 97 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1019 126 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1010 108 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 28 1027 160 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1004 87 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1025 157 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1010 97 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1019 124 0 0 100 0 0
여기서 보면 실제로 cashe 메모리가 높게 사용되고 잇는 것을 알 수 있다.
하지만 캐시메모리는 실제로는 free 메모리로 보는 것이 옳다.
리눅스에서는 자동적으로 모든
램의 빈 공간을 버퍼 캐쉬로
사용하여 메모리를 효율성을 높이고 있으며
프로그램에서 많은 메모리를
필요로 하는 경우에는 자동으로 캐쉬의
크기를 줄인다.
그렇다면 위에서 실제로
사용가능한 메모리는 free+buffers+cached 이다.
( 원문 : http://tunelinux.pe.kr/tune/tunning-pse/tunning.html )