본문 바로가기

IT/papers

Linux Performance and Tuning Guidelines - 2. Mornitoring and benchmark tools - free

먼저 free 명령어에 의한 출력결과로 메모리 사용량을 분석하면 아래와 같다.

[root@hojung931:Active] config # free

             total       used       free     shared    buffers     cached

Mem:        380696     325192      55504          0       5588     161080

-/+ buffers/cache:     158524     222172

Swap:      2314956          0    2314956

 

전체 메모리는 total 380696 이며, 사용된 메모리는325192이나 사용자 입장에서 사용 가능한 메모리(free)55504 아닌 free+buffers+cached (55504 + 5588 + 161080 =) 222172이다. Mem: 행에서 used 수치는 리눅스 운영체제 입장에서 바라본 사용 메모리 수치이다. Beffers cached 수치는 리눅스의 효율적인사용을 위하여 전체 메모리에서 미리 buffers+caches 값을 자동으로 할당한 app 에서 메모리가 필요할 경우 cached 할당한 메모리를 자동으로 반환한다.

 다시말해 캐시는 사용한 데이터를 완전히 지우지 않고 프로세스가 다시 사용할 경우 곧바로 돌려주기 위해 쓰는 메모리이다.  Mem: 행에서 cached 값이 사용한 걸로 표시되어 used 포함되지만 실제로는 사용하는 메모리가 아니다. free 메모리가 부족하면 캐시된 메모리를 쓰게된다.

 따라서 실제 메모리의 사용량과 사용 가능한 메모리는 -/+ buffers/cache 행의 값을 체크하면 된다.

 

  • Swap메모리의 현황에 대한 설명

 Swap메모리의 결정은 서버설치시에 설치하는 사람이 결정한 스왑메모리의 용량이다. 또한 스왑메모리는 윈도우시스템에서는 가상메모리(Virtual Memory)라는 개념으로 사용되고 있는 것이며 시스템운용중에 실제메모리가 부족할 경우에 스왑메모리를 사용하게 된다. 스왑메모리는 디스크의 일부분을 메모리로 잡아서 설정되기 때문에 스왑메모리가 많이 사용되고 있다는 것은 시스템의 전체적인 속도가 떨어진다는 것을 의미하며 지속적으로 스왑메모리가 많이 사용될 경우에는 실제메모리(RAM) 증설해야한다는 의미가 된다.

 

Swap행의 total 시스템의 전체 Swap메모리의 량을 표시한다.

Swap행의 used 전체 스왑메모리에서 현재 사용중인 스왑메모리의 량이다.

Swap행의 free 전체 스왑메모리중에서 사용되지 않고 남아 있는 메모리의 량이다.

 

top 명령의 결과는 free 동일하다. 아래의 결과는 시간차를 두고 실행된 것이므로 약간의 차이가 있을 있다.

 

[root@hojung931:Active] config # top

 11:41:02  up  2:36,  4 users,  load average: 1.00, 1.00, 0.96

96 processes: 95 sleeping, 1 running, 0 zombie, 0 stopped

CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle

           total   70.6%    0.0%   29.3%   0.0%     0.0%    0.0%    0.0%

Mem:   380696k av,  325184k used,   55512k free,       0k shrd,    5588k buff

       239104k active,              48916k inactive

Swap: 2314956k av,       0k used, 2314956k free                  161080k cached