안녕하세요
현재 개발중인 서비스의 CPU사용량이 계속 100%인 상태인데
도무지 원인을 찾을수가 없어 방법을 찾아보다 문의글을 남겨봅니다.
현재 서버의 스펙은 16코어 CPU에 32GB 메모리이며, SSD 100GB에 유휴 공간이 50GB정도 됩니다.
메모리 사용량은 4기가 정도 사용중이며 cpu는 16코어 모두 100%를 유지하고 있습니다.
postgres 12버전으로 ubuntu에 설치하여 환경 설정은 초기 설정에서 변경된 것은
max_connection 만 300으로 수정되었습니다.
웹서비스도 개발중이라 외부 커넥션은 없는 상태이며 개발자체도 다른 파트에서 개발중이라
현재 맺어져있고 Query가 질의된 것도 없는 상황입니다. 커넥션들은 idle 상태이며
원인을 찾아보느라 제 커넥션만 살아있는 상태였습니다.
눈에 띄는 것은 리눅스의 ps를 이용하여 정보를 확인해 보면
postgres를 실행하는 실행명령과
postgres 90573 1 0 11:59 ? 00:00:13 /usr/lib/postgresql/12/bin/postgres -D /pg_data/db/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf
아래와 같은 커넥션 정보들은 이해가 가나
postgres 39220 90573 0 19:13 ? 00:00:00 postgres: 12/main: postgres {서비스 DB명} 192.168.3.13(44388) idle
이렇게 표현되는 정보가 있습니다.
postgres 75047 1 99 Jan10 ? 21-20:20:40 CBZdbl3t
top을 이용해서 CPU사용량을 보면 저렇게 표현되는 CBZdbl3t가 모두 사용하고 있는 것으로 표현되고 있습니다.
앞의 postgres 및 top을 사용한 USER를 봐도 postgres에서 실행시키는 것 같으나 postgres가 실행될때의 PID와도 연관성은
찾아볼 수가 없었습니다.
관련하여 매뉴얼 혹은 검색엔진을 통해 접근을 해보았으나 모두 Query상의 이슈를 설명하는 글들이여서
적절한 답을 얻을 수 없었습니다.
혹시 이 글을 보시는 분들 중 관련한 이슈에 대해 최소한으로나마 문제가 보이시거나 예측이 되시는 분이 계시다면
가르침을 주시길 부탁드리겠습니다.
감사합니다. 새해 복 많이 받으세요.
|