잡동사니
Pgpool이 죽는현상 해결 본문
안녕하세요. yeTi입니다.
오늘은 Pgpool
을 활용하여 PostgreSQL
을 사용하는 중에 지속적으로 pgpool
이 죽는 현상을 해결한 부분을 공유하고자 합니다.
작업 환경
- Pgpool : 4.1.1
- PostgreSQL : PostgreSQL 11.7 on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
구성
서버 구성은 pgpool
과 postgresql
이 1:1로 설정되어 있습니다.
현상
pgpool
pod이 지속적으로 재시작하는 현상이 있었지만 pod로그나 이벤트로그상으로는 특이점을 찾을 수 없는 상황이었습니다.
원인 분석
pgpool
의 session
을 확인하는 도중 클라이언트 커넥션이 다 차면서 pgpool
이 재시작하는 것을 확인하여 클라이언트 커넥션이 부족하다는 것을 인지했습니다.
조치
pgpool
의 설정에서 num_init_children
을 변경하여 클라이언트의 커넥션 수를 조정하여 해결하였고
쉘 스크립트를 활용하여 지속적으로 모니터링한 결과 클라이언트의 커넥션에 여유가 생긴것을 확인하였습니다.
while true; do echo $(date '+%Y-%m-%d %H:%M:%S') $(($(psql -h localhost -p 5432 -U postgres -d postgres -c "show pool_processes;" | wc -l)-4)) $(($(psql -h localhost -p 5432 -U postgres -d postgres -c "show pool_processes;" | awk '{print $6}' | grep \| | wc -l)-1)); sleep 1; done
2020-12-24 05:19:09 64 28
2020-12-24 05:19:10 64 28
2020-12-24 05:19:11 64 28
...
참고
백엔드 프로세스 수
num_init_children * max_pool
'IT > Database' 카테고리의 다른 글
Isolation Level이 가지는 의미와 각 Level의 특성 with Lock (0) | 2022.05.31 |
---|---|
Pgpool 현재 커넥션수 확인하기 (0) | 2020.12.24 |
pgAdmin으로 PostgreSQL backup 및 restore하기 (0) | 2020.12.24 |
Kubernetes에 PostgreSQL HA 구성하기 (0) | 2020.05.14 |
[Redis] 지속성(Persistence)에 대한 레퍼런스 한글문서, Failover (0) | 2018.12.11 |
Comments