활성 연결 수 및 남은 연결 수


21

일정 기간 동안 최대 연결 수에 대한 통계를 얻고 싶습니다.

나는 pg_stat_activity같은 견해를 알고 select count(*) from pg_stat_activity있지만이 방법은 그리 똑똑하지 않다고 생각합니다.

필요한 정보를 제공 할 수있는 다른 뷰나 테이블이 있습니까?

답변:


39

이 SQL은 당신을 도울 것입니다

select max_conn,used,res_for_super,max_conn-used-res_for_super res_for_normal 
from 
  (select count(*) used from pg_stat_activity) t1,
  (select setting::int res_for_super from pg_settings where name=$$superuser_reserved_connections$$) t2,
  (select setting::int max_conn from pg_settings where name=$$max_connections$$) t3

결과:

max_conn | used | res_for_super | res_for_normal 
---------+------+---------------+----------------
  100    |    2 |             3 |             95
(1 row)

이것을 쉘에 넣을 수 있습니다 :

#!/bin/bash
for (( c=1; c<=3600; c++ ))
do
     gsql -U pgdba -W pgdba -p 6432 -c "sql" >> /home/pgdba/res_data.log
     sleep 1  # once per second
done

또는 결과를 표에 기록한 다음 실행할 수 있습니다

postgres=# copy restbl to '/home/pgdba/res.csv' csv header;

결과 CSV 파일을 얻으려면.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.