সক্রিয় সংযোগ এবং অবশিষ্ট সংযোগের সংখ্যা


21

আমি সময়ের সাথে সাথে সংযোগের শীর্ষের সংখ্যা সম্পর্কে পরিসংখ্যান পেতে চাই।

আমি জানি pg_stat_activityদৃশ্য, মত select count(*) from pg_stat_activity, কিন্তু আমি মনে করি এই পদ্ধতি খুব স্মার্ট নয়।

এমন অন্যান্য মতামত বা সারণী রয়েছে যা আমার প্রয়োজনীয় তথ্য সরবরাহ করতে পারে?

উত্তর:


39

এই এসকিউএল আপনাকে সাহায্য করবে

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;

ফলাফল সিএসভি ফাইল পেতে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.