공부, 기록

[MySQL] OOM으로 인한 서버 다운 현상 확인 본문

공부/DATABASE

[MySQL] OOM으로 인한 서버 다운 현상 확인

무는빼주세요 2024. 1. 31. 23:43

운영중이지 않은 MYSQL 서버가 SHUTDOWN 되어 확인이 필요했다.

 

1. 메모리 관련 지표의 특이사항

2. OS 에서 OOM 로그 확인

 

메모리 증가로 인한 OOM으로 확인이 되었으나 해당 서버는 대기 서버로 MYSQL 서버의 급격한 메모리 사용이 있을 수 없는 상황이었다.

 

A -> B -> C 서버로 구성된 복제 서버중 C 서버였고 A, B 서버 모두 메모리 관련으로 인한 서버 이슈가 없는 상태에서 C 서버에서만 MYSQL 이 죽었기 때문에 MYSQL의 영향이 아닌 다른 프로세스의 영향이라고 생각이 되었으며

DOWN 당시 MYSQL의 rss 는 3.5G 였다(서버는 8G의 메모리)

 

서버의 AD 계정 인증을 위한 SSSD 프로세스 중 하나가 RSS 값이 3G를 넘게 사용하고 있었고 이것에 대한 확인을 인프라팀에 요청하였을 때 불필요한 프로세스로 확인이 되었고 해당 프로세스를 제거하여 해결이 되었다. 

또한 서버에 좀비 프로세스가 발견이 되었는데 (sendmaill command의) 아래와 같은 내용을 확인하여 조치하였다.

 

좀비 프로세스

좀비 프로세스의 부모 프로세스

 

crontab 에 걸려있는 스케줄이 실행될 때마다 sendmail 로 cron job owner 에게 메일이 가게 됨.

이 과정에서 sendmail 프로세스가 다량 발생하여 CPU/Memory 등의 resource를 점유하여,

서버의 성능에 영향을 미칠 수 있음.

해결>

cron job 커맨드 끝에 > /dev/null 2>&1 을 붙여 결과가 null 값으로 떨어지도록 해준다