EC2 메모리 공간 감소 시 대응 방법

딱한 사정

  • 공식적으로 공개된 AWS는 3일마다 재부팅
  • 왜 공식 공연이 3일마다 다시 시작되는지 모르겠다
  • 컨디션

  • autoscaling 사용
  • 로드 밸런서 사용
  • rails(6.1)
  • 시동은puma
  • EC2계획:t2.micro
  • 사전 요구 사항 정보

  • 일지에 OOMキラー작업에 대한 설명이 있다.이후 EC2 인스턴스 감소
  • /etc/sysctl.conf에서 OOM 킬러가 활성화되면 EC2 인스턴스가 재부팅
  • 으로 설정됩니다.
  • EC2 실례가 다시 시작될 때nginx와puma가 시작하는crontab
  • 를 설정합니다
  • EC2 인스턴스가 재부팅되면 스토리지가 재설정됩니다
  • .
  • 약 3일 반복 후 OOM 킬러가 일을 시작합니다
  • 하루에 5000명 정도의user가 사이트에 접속하는 앱
  • 예기

  • 스토리지 유출
  • 메모리 에이전트(메모리 파편화)
  • 중 하나
  • 확인

  • 메모리 유출의 특징: 메모리 소모량이 점차 선형적으로 증가
  • 메모리 파편화의 특징: 메모리 소비량이 어느 정도 증가할 때 메모리 파편화의 특징은 가로로 변한다
  • 우선 스토리지 소비량 추이를 모니터링해야 합니다
  • .
  • 클라우드 워치에서 메모리 소모량을 감시하는 설정
  • gem


  • puma worker killer의gem가 유명해요
  • README를 읽으면 사용하지 않는 것이 좋으므로 사용하지 않는 것이 좋다
  • 대책

  • 검증 결과 유출인지 분단인지 불분명
  • 계획이 t2.micro이라 메모리가 너무 적음
  • t3.small, 이후 한 번도 재부팅하지 않았는데 파편화 때문인가
  • 기타

  • 자주 사용하는 명령$ free -m(스토리지 사용량 파악)

  • 좋은 웹페이지 즐겨찾기