[채용 공고 크롤러] 서버 터짐

김태훈·2023년 8월 17일
0
post-thumbnail
post-custom-banner

개요

서버에 접속이 되지 않는다는 연락을 받았습니다.
https 접속은 물론 ssh 접속도 되지 않는 걸 확인했습니다.

문제 발견

AWS EC2의 인스턴스를 확인하자 아래와 같은 결과를 확인할 수 있었습니다.

아래와 같은 방식으로 로그를 확인할 수 있습니다.

[   26.587077] cloud-init[1349]: Cloud-init v. 23.1.2-0ubuntu0~22.04.1 finished at Wed, 26 Jul 2023 05:27:18 +0000. Datasource DataSourceEc2Local.  Up 26.58 seconds
[  OK  ] Finished Execute cloud user/final scripts.
[  OK  ] Reached target Cloud-init target.
[  883.645174] Out of memory: Killed process 2473 (mysqld) total-vm:1325720kB, anon-rss:360000kB, file-rss:0kB, shmem-rss:0kB, UID:115 pgtables:1068kB oom_score_adj:0
2023/07/26 13:20:03Z: Amazon SSM Agent v3.1.1927.0 is running
2023/07/26 13:20:03Z: OsProductName: Ubuntu
2023/07/26 13:20:03Z: OsVersion: 22.04

Out of memory: Killed process 2473(mysqld) ... 해당 부분이 신경쓰입니다.
더 이상의 정보를 확인할 수 없어 서버를 재부팅했습니다.
서버에 접속해 프로세스의 에러 로그를 확인하자 아래와 같은 에러 메세지를 확인할 수 있었습니다.

2023-08-16 06:31:26.390  INFO 125698 --- [         task-1] o.k.j.e.service.EmailSendingServiceImpl  : 새롭게 등록된 채용공고 24 건을 구독자 전원(5명)에게 보내줍니다
2023-08-16 06:44:12.557  WARN 125698 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m1s514ms341µs115ns).
2023-08-16 06:48:12.656  WARN 125698 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=8m20s23ms431µs728ns).
2023-08-16 06:49:17.591  WARN 125698 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m7s235ms937µs471ns).

6시 30분 스케쥴러에 의해 이메일을 보내고 서버가 터진 걸 확인할 수 있습니다.
DB 역시 8월 16일까지 갱신이 된 걸 확인할 수 있었습니다.

의심가는 부분

어째서 이메일을 보내고 10분 가량이 지나 Thread starvation or clock leap 가 발생했을까요.

지금으로써는 메모리에 부하가 간 게 아닐까 하는 의심이 생깁니다.
과거 메모리 부족으로 해당 이슈를 마주친 적이 있습니다. 해당 내용이 궁금하시다면 이 글을 참고해주세요.

커넥션 풀이 부족해서 문제가 발생했을 수 있습니다. 하지만 새벽 6시반에 해당 문제가 발생하진 않았을 것 같습니다. 10명이 동시에 요청을 보냈을리가 없어요,,

조치

서버에 메모리 사용량을 모니터링하는 Cloudwatch를 설치했습니다. 설치하는 방법은 이 글을 참고해주세요.
추후 문제가 또 발생하면 이어서 글을 작성하겠습니다.

profile
작은 지식 모아모아
post-custom-banner

0개의 댓글