몇 분전 페이스북 눈팅을 하다가 생활코딩의 한 멤버분이 리눅스 서버의 top 스냅샷을 올려서 조언을 구하는 내용이 있길래 얼핏 보니

스왑메모리를 2기가 정도 사용하고 있고 서버 리부팅후 일정 시간이 지나면 서버가 느려진다라는 말로 보아 거의 80% 이상 서버 로직

메모리 누수로 판단이 되는데 예전에 정리했던 내용을 리마인드겸 한번 공유하면 도움이 될까 싶어서 포스팅을 하기로 한다.


  • 설명
    • 리눅스는 free 메모리를 최대한 cache 메모리로 사용하여 시간이 지날수록 cache 메모리 사용량이 증가하면서 애플리케이션의 로딩 속도가 향상됨.
      • 물론 free 메모리가 필요한 순간에는 cache 메모리를 줄이고 free 메모리를 확보함.
  • 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로 보면 값이 정확함)


+ Recent posts