PostgreSQL فعال سیشن کی تاریخ - نئی pgsentinel توسیع

کمپنی کے pgsentinel اسی نام کی pgsentinel توسیع جاری کی (github ذخیرہ)، جو پوسٹگری ایس کیو ایل میں pg_active_session_history منظر شامل کرتا ہے — ایکٹو سیشنز کی تاریخ (Oracle کی v$active_session_history کی طرح)۔

بنیادی طور پر، یہ pg_stat_activity سے محض سیکنڈ بہ سیکنڈ اسنیپ شاٹس ہیں، لیکن اہم نکات ہیں:

  1. تمام جمع شدہ معلومات صرف RAM میں محفوظ کی جاتی ہیں، اور میموری کی استعمال شدہ مقدار کو آخری ذخیرہ شدہ ریکارڈز کی تعداد سے منظم کیا جاتا ہے۔
  2. queryid فیلڈ شامل کی گئی ہے - pg_stat_statements ایکسٹینشن سے وہی queryid (پہلے سے انسٹالیشن درکار ہے)۔
  3. top_level_query فیلڈ کو شامل کیا گیا ہے - استفسار کا متن جس سے موجودہ استفسار کو کال کیا گیا تھا (اگر pl/pgsql استعمال کر رہے ہوں)


pg_active_session_history فیلڈز کی مکمل فہرست:

      کالم | قسم ------------------+------------ ash_time | ٹائم سٹیمپ کے ساتھ ٹائم زون datid | oid datename | ٹیکسٹ pid | انٹیجر useysid | oid استعمال نام | ٹیکسٹ ایپلیکیشن_نام | متن client_addr | متن client_hostname | متن کلائنٹ_پورٹ | انٹیجر backend_start | ٹائم اسٹیمپ کے ساتھ ٹائم زون xact_start | ٹائم اسٹیمپ کے ساتھ ٹائم زون query_start | ٹائم سٹیمپ کے ساتھ ٹائم زون state_change | ٹائم زون کے ساتھ ٹائم اسٹیمپ wait_event_type | متن wait_event | متن کی حالت | متن backend_xid | xid backend_xmin | xid top_level_query | متن کا سوال | ٹیکسٹ queryid | bigint backend_type | متن                     

تنصیب کے لیے ابھی تک کوئی تیار شدہ پیکیج نہیں ہے۔ ذرائع کو ڈاؤن لوڈ کرنے اور لائبریری کو خود جمع کرنے کی تجویز ہے۔ آپ کو پہلے اپنے سرور کے لیے "devel" پیکیج انسٹال کرنا ہوگا اور PATH متغیر میں pg_config کا راستہ سیٹ کرنا ہوگا۔ ہم جمع کرتے ہیں:

cd pgsentinel/src
بنا
انسٹال کریں

postgres.conf میں پیرامیٹرز شامل کریں:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = تمام

# یادداشت میں رکھے گئے حالیہ ریکارڈز کی تعداد
pgsentinel_ash.max_entries = 10000

PostgreSQL کو دوبارہ شروع کریں اور ایک توسیع بنائیں:

ایکسٹینشن pgsentinel بنائیں؛

جمع شدہ معلومات ہمیں سوالات کا جواب دینے کی اجازت دیتی ہے جیسے:

  • آپ نے سب سے زیادہ وقت کن انتظار کے سیشنوں میں گزارا؟
  • کون سے سیشن سب سے زیادہ فعال تھے؟
  • کون سی درخواستیں سب سے زیادہ فعال تھیں؟

آپ یقیناً SQL سوالات کا استعمال کرتے ہوئے ان سوالات کے جوابات حاصل کر سکتے ہیں، لیکن ماؤس کے ساتھ دلچسپی کے وقت کے وقفوں کو نمایاں کر کے گراف پر اسے بصری طور پر دیکھنا زیادہ آسان ہے۔ آپ یہ ایک مفت پروگرام کے ساتھ کر سکتے ہیں۔ PASH- ناظر (آپ سیکشن میں جمع کردہ بائنریز ڈاؤن لوڈ کر سکتے ہیں۔ ریلیز).

شروع کرتے وقت، PASH-Viewer (ورژن 0.4.0 سے شروع ہوتا ہے) pg_active_session_history منظر کی موجودگی کو چیک کرتا ہے اور اگر یہ موجود ہے تو یہ اس سے پوری جمع شدہ تاریخ کو لوڈ کرتا ہے اور ہر 15 سیکنڈ میں گراف کو اپ ڈیٹ کرتے ہوئے نئے آنے والے ڈیٹا کو پڑھتا رہتا ہے۔

PostgreSQL فعال سیشن کی تاریخ - نئی pgsentinel توسیع

ماخذ: www.habr.com

نیا تبصرہ شامل کریں