RSS DEV 커뮤니티

메모리 기반 자동 확장: CPU 메트릭이 우리에게 거짓말했을 때 사이드키크 작업을 저장하기

저자는 처음에는 오토 스케일링 그룹에 CPU 기반 스케일링을 의존했는데, 이는 웹 서버에 흔히 사용되는 일반적인 방식이며 종종 잘 작동합니다. 하지만 백그라운드 작업, 특히 Sidekiq를 사용하는 작업에서 이 접근 방식의 심각한 결함이 드러났습니다. 중요한 백그라운드 작업이 실패하고, CPU 사용률이 낮음에도 불구하고 워커 프로세스가 예기치 않게 충돌했습니다. 근본 원인은 메모리 부족으로 인해 프로세스를 종료하는 Linux OOM (Out-of-Memory) 킬러로 밝혀졌습니다. 기본 클라우드 모니터링 시스템은 메모리 사용량을 추적하지 않았기 때문에 CPU 사용률이 낮게 유지되는 동안 시스템은 문제를 인식하지 못했습니다. 해결책은 CloudWatch Agent를 설치하여 메모리 사용량 지표를 수집하고 전송하는 것이었습니다. 새로운 지표를 활용하여 저자는 오토 스케일링 그룹에 메모리 기반 스케일링 정책을 구현했습니다. 이 변경으로 시스템은 서비스가 충돌하기 전에 인스턴스를 추가하여 메모리 압력에 따라 예측 가능하게 스케일링되도록 보장했습니다. 그 결과, 충돌이 즉시 중단되어 시스템 안정성과 효율성이 향상되었습니다. 마지막으로, 저자는 백그라운드 워커가 웹 서버에 비해 종종 메모리 중심의 스케일링을 필요로 한다는 점을 강조했습니다.
favicon
dev.to
Memory-Based Auto Scaling: Saving Our Sidekiq Jobs When CPU Metrics Lied to Us
기사 이미지: 메모리 기반 자동 확장: CPU 메트릭이 우리에게 거짓말했을 때 사이드키크 작업을 저장하기
Create attached notes ...