서버에 접속이 되지 않는다는 연락을 받았습니다.
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
[[0;32m OK [0m] Finished [0;1;39mExecute cloud user/final scripts[0m.
[[0;32m OK [0m] Reached target [0;1;39mCloud-init target[0m.
[ 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를 설치했습니다. 설치하는 방법은 이 글을 참고해주세요.
추후 문제가 또 발생하면 이어서 글을 작성하겠습니다.