मैं कैसे बता सकता हूं कि मेरे पोस्टग्रेज डेटाबेस के प्रति सेकंड कितने प्रश्न निष्पादित हो रहे हैं?
मैं कैसे बता सकता हूं कि मेरे पोस्टग्रेज डेटाबेस के प्रति सेकंड कितने प्रश्न निष्पादित हो रहे हैं?
जवाबों:
सभी डेटाबेस में निष्पादित लेनदेन की कुल संख्या को पढ़ने के लिए इस क्वेरी का उपयोग करें :
SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;
यदि आप केवल एक डेटाबेस के लिए एक ही काउंटर चाहते हैं, तो उपयोग करें:
SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';
टीपीएस (प्रति सेकंड लेनदेन) की गणना करने के लिए, क्वेरी को कई बार चलाएं और समय अंतराल पर अंतर की गणना करें।
इसके लिए तैयार उपकरण हैं, उनमें से एक http://bucardo.org/wiki/Check_postgres है
अधिक जानकारी: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW
अद्यतन: कोनराड ने अपने प्रश्न की मेरी गलतफहमी को ठीक किया। लक्ष्य प्रश्नों को गिनना था, लेन-देन नहीं।
प्रश्नों की गणना कैसे करें?
विधि 1
Pg_stat_statements contrib का उपयोग करें ।
विधि 2
एक प्रतिनिधि अवधि के लिए प्रश्नों की पूर्ण लॉगिंग सक्षम करें।
पूर्ण लॉगिंग को सक्षम करने के लिए, PostgreSQL 9.0 - 9.3 के लिए, निम्न सेटिंग्स को बदल दें postgresql.conf
logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all
यदि आप क्वेरी अवधि भी देखना चाहते हैं, तो आप log_min_duration_statement = 0
इसके बजाय सेट कर सकते हैं log_statement = all
। क्वेरी ट्यूनिंग के लिए यह बहुत उपयोगी है।
फिर कॉन्फ़िगरेशन (पुनरारंभ या एचयूपी) को पुनः लोड करें और ट्रैफ़िक का अनुमान लगाने के लिए पर्याप्त लॉग एकत्र करें।
नोट: न तो विधि में उपयोगकर्ता-परिभाषित कार्यों में एम्बेडेड क्वेरी शामिल होंगी।