몇 분전 페이스북 눈팅을 하다가 생활코딩의 한 멤버분이 리눅스 서버의 top 스냅샷을 올려서 조언을 구하는 내용이 있길래 얼핏 보니
스왑메모리를 2기가 정도 사용하고 있고 서버 리부팅후 일정 시간이 지나면 서버가 느려진다라는 말로 보아 거의 80% 이상 서버 로직
메모리 누수로 판단이 되는데 예전에 정리했던 내용을 리마인드겸 한번 공유하면 도움이 될까 싶어서 포스팅을 하기로 한다.
- 설명
- 리눅스는 free 메모리를 최대한 cache 메모리로 사용하여 시간이 지날수록 cache 메모리 사용량이 증가하면서 애플리케이션의 로딩 속도가 향상됨.
- 물론 free 메모리가 필요한 순간에는 cache 메모리를 줄이고 free 메모리를 확보함.
- 리눅스는 free 메모리를 최대한 cache 메모리로 사용하여 시간이 지날수록 cache 메모리 사용량이 증가하면서 애플리케이션의 로딩 속도가 향상됨.
- top 예제
- 위 그림에서 used는 실제 메모리 사용량이 아니라 빨간색으로 묶은 buffers + cached, 그리고 여기에 표시되지 않은 다른 메모리사용량(실제 메모리 사용량)을 합한 값으로 보여지게 된다.
- free 예제
- 실제 메모리 사용량을 확인할 수가 있는데, 빨간색으로 보여지는 부분의 used가 실제 메모리 사용량이고 free가 실제 여유 메모리를 나타낸다.
- 첫번째 라인의 used는 buffers + cached + 실제 메모리사용량 --> 1420 = 167 + 1072 + 180 (mb로 표시하여 1의 오차가 발생, free -k로 보면 값이 정확함)
- 두번째 라인의 free는 첫번째 라인의 free + buffers + cached --> 1845 = 606 + 167 + 1072 (mb로 표시하여 1의 오차가 발생, free -k로 보면 값이 정확함)
- 실제 메모리 사용량을 확인할 수가 있는데, 빨간색으로 보여지는 부분의 used가 실제 메모리 사용량이고 free가 실제 여유 메모리를 나타낸다.
'Linux & windows' 카테고리의 다른 글
리눅스 서버 cpu, memory 상태 체크(python) 및 알림 (telegram) (0) | 2017.05.12 |
---|---|
/bin/sh^M bad interpreter 그런 파일이나 디렉토리가 없음 (0) | 2015.11.13 |