블로그 이미지
윤영식
Full Stacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

2012. 12. 7. 13:59 Middleware, Cloud/Linux

운영중에 Free Memory size가 부족하다고 하여 top 명령어로 살펴보았다. 


top - 13:52:48 up 60 days,  4:05,  2 users,  load average: 0.09, 0.34, 0.46

Tasks: 186 total,   1 running, 185 sleeping,   0 stopped,   0 zombie

Cpu(s):  1.8%us,  0.2%sy,  0.0%ni, 97.8%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:  47185920k total, 47125908k used,    60012k free,  1250664k buffers

Swap: 10485752k total,      120k used, 10485632k free, 30877100k cached


  - Mem: 60,012 free 로 나온 것을 보아 헉 현재 60Mbytes 밖에 여유가 없다니! 과연 그럴까?

  - Linux의 경우 real free = free + cached of Swap 로 봐야 한다. 


free -gt 명령을 수행해 보면, 여유 메모리는 30G가 됩니다. 따라서 free 0 로 나오지만 buffers + cached 30G 의 free memory 여유가 있다고 보면 됩니다. 

[jboss@hostname ~]$ free -gt
                 total       used     free     shared   buffers  cached
Mem:            45         44          0          0          1         29
-/+ buffers/cache:     14         30
Swap:            9          0          9
Total:            54        44         10

cashed는 여유메모리로 보시면 됩니다.

리눅스 시스템은 파일형태로 관리되는 운영체제이기때문에 여유메모리를 캐쉬파일로 표현되고 있습니다.

또한 스왑이란 실제 메모리 캐쉬메모리까지 모두 사용해서, 부족할때 하드 일부분을 메모리 처럼 가져다 쓸때 사용되는 메모리를 말합니다.

free -gt로 보시면 사용되는 스왑메모리는 거의없습니다.

현재 메모리 여유가 있다고 보시면됩니다.


<참고>

  - 리눅스 메모리 관리

posted by 윤영식