잡동사니

Pgpool 현재 커넥션수 확인하기 본문

IT/Database

Pgpool 현재 커넥션수 확인하기

yeTi 2020. 12. 24. 14:42

안녕하세요. yeTi입니다.
오늘은 Pgpool에서 현재 접속한 커넥션수를 확인해보려고 합니다.

작업환경

  • Pgpool : 4.1.1

shell에서 pgpool 상태확인하기

psql 접근시 비밀번호를 입력하는 단계를 생략하기 위해 환경변수에 pgpool의 비밀번호를 설정합니다.

/$ export PGPASSWORD=[계정 비밀번호]

psql을 활용하여 pgpool에 쿼리를 실행에 shell로 반환하여 정보를 받습니다.
show pool_processes를 사용하면 pgpool에 설정되어있는 클라이언트 수 및 현재 접속하고 있는 클라이언트를 확인할 수 있습니다.

/$ psql -h localhost -p 5432 -U postgres -d postgres -c "show pool_processes;"
 pool_pid |     start_time      |     database      |  username  |     create_time     | pool_counter 
----------+---------------------+-------------------+------------+---------------------+--------------
 108      | 2020-12-24 01:04:12 |                   |            |                     | 
 109      | 2020-12-24 01:04:12 |                   |            |                     | 
 110      | 2020-12-24 01:04:12 |                   |            |                     | 
 ...

Connection의 설정값 확인

pgpool에 설정되어 있는 클라이언트의 수를 가져오기 위해 show pool_processes;의 결과를 가공합니다.

/$ echo $(($(psql -h localhost -p 5432 -U postgres -d postgres -c "show pool_processes;" | wc -l)-4))
64

사용가능한 Connection 수 확인

pgpool에 사용가능한 커넥션 수를 가져오기 위해 show pool_processes;의 결과를 가공합니다.

/$ echo $(($(psql -h localhost -p 5432 -U postgres -d postgres -c "show pool_processes;" | awk '{print $6}' | grep \| | wc -l)-1))
28

주기적으로 Connection 상태 확인

1초마다 총 커넥션 대비 사용가능한 커넥션 수를 표현합니다.

export PGPASSWORD=[계정 비밀번호]
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
...
Comments