상황
aws 비용 명세서를 보는데 위처럼 ebs IOps(input/output operations per second)가 갑자기 엄청나게 늘어났다. 이전달까지는 2백만 IOs 안쪽으로 기록됐는데, 이번달은 6천만 IO가 넘어가서 추가요금이 발생하는 상황이었다. 평소보다 30배 이상 증가한 셈이다. 바로 cloud watch 에서 모니터링 지표를 확인했다.
위에서 볼 수 있듯이, 쓰기 처리량이 5월 초부터 증가했다. 반면 평균 쓰기 크기는 줄었다. 종합하자면, 아주 작은 크기의 디스크 쓰기 작업이 자주 발생하고 있는 상황이다. IO 횟수로 과금되는 EBS 특성상 한번 IO 할 때 데이터를 최대한 모아서 한번에 작업하는 것이 유리한데, 매우 비효율적으로 작동하고 있는 셈이다. 로그성 데이터가 초단위로 쓰여지는 상황으로 추정했다.
대응
(1) 이슈 등록
: 상황을 인지하고 바로 github issue 로 등록했다.
(2) 쓰기 작업 중인 프로세스 목록 확인
리눅스 iotop 명령어를 이용해서 현재 쓰기작업을 하는 프로세스가 무엇이 있는지 확인했다.
웹서버와 WAS 등을 제외하고, collectd 라는 프로세스가 5초마다 쓰기작업하는 것을 확인했다.
collectd 는 리눅스 시스템 메트릭 정보를 주기적으로 수집하는 프로세스다.
주로 모니터링 툴과 함께 사용되는데, 5월 초에 모니터링 구축한다고 난리치다가 말았던 기억이 떠올랐다... 메모리나 디스크가 위험 수위까지 사용되면 알림이 오도록 모니터링 시스템을 구축하려다가 시간이 없어서 중단했었는데, 그 때 collectd를 설치했었다. 허허 아무래도 이 친구 때문인 듯하다.
(3) 의심되는 프로세스 종료
바로 collectd 를 종료하고 AWS cloudwatch 로 디스크 처리량을 확인해보았다.
바로 뚝 떨어졌다... 허허... 이거 때문에 이번달 5$가 추가적으로 과금됐다... 허허
'웹 프로젝트 (IBAS) > Infra' 카테고리의 다른 글
프록시 요청 시 원래 사용자 ip 복원하기 (Nginx, Cloudflare) (2) | 2022.05.05 |
---|---|
AWS 운영비 줄이기(ec2, savings plan, ebs, s3) (0) | 2022.05.03 |