PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

pg_top का उपयोग करके PostgreSQL उदाहरणों की गतिशील निगरानी

PostgreSQL की निगरानी करना, कभी-कभी, एक आंधी में मवेशियों को कुचलने की कोशिश करने जैसा हो सकता है। एप्लिकेशन इतनी जल्दी जुड़ते हैं और क्वेरी जारी करते हैं, यह देखना मुश्किल है कि क्या हो रहा है या यहां तक ​​​​कि विशिष्ट डेवलपर के अलावा सिस्टम के प्रदर्शन का एक अच्छा अवलोकन प्राप्त करें, जो शिकायत करते हैं कि 'चीजें धीमी हैं, मदद करें!' तरह के अनुरोध।

पिछले लेखों में, हमने चर्चा की थी कि जब PostgreSQL धीमी गति से काम कर रहा हो तो स्रोत तक कैसे पहुंचें, लेकिन जब स्रोत विशेष रूप से क्वेरी करता है, तो सक्रिय लाइव वातावरण में क्या हो रहा है, इसका आकलन करने के लिए बुनियादी स्तर की निगरानी पर्याप्त नहीं हो सकती है।

डेटाबेस में रीयल टाइम गतिविधि पर नज़र रखने के लिए एक PostgreSQL विशिष्ट प्रोग्राम pg_top दर्ज करें, साथ ही डेटाबेस होस्ट के लिए मूलभूत जानकारी देखें। लिनक्स कमांड 'टॉप' की तरह, इसे चलाने से उपयोगकर्ता को होस्ट पर डेटाबेस गतिविधि के लाइव इंटरेक्टिव डिस्प्ले में लाया जाता है, जो अंतराल में स्वचालित रूप से ताज़ा होता है।

इंस्टॉलेशन

pg_top को स्थापित करना आम तौर पर अपेक्षित तरीकों से किया जा सकता है:पैकेज मैनेजर और सोर्स इंस्टाल। इस लेख का नवीनतम संस्करण 3.7.0 है।

पैकेज प्रबंधक

प्रश्न में लिनक्स के वितरण के आधार पर, पैकेज मैनेजर में pgtop या pg_top खोजें, यह सिस्टम पर PostgreSQL के स्थापित संस्करण के लिए कुछ पहलुओं में उपलब्ध होने की संभावना है।

Red Hat आधारित वितरण:

# sudo yum install pg_top

जेंटू आधारित डिस्ट्रोस:

# sudo apt-get install pgtop

स्रोत

यदि वांछित है, तो pg_top को PostgreSQL git रिपॉजिटरी से स्रोत के माध्यम से स्थापित किया जा सकता है। यह किसी भी वांछित संस्करण को प्रदान करेगा, यहां तक ​​कि नए बिल्ड जो अभी तक आधिकारिक रिलीज में नहीं हैं।

सुविधाएं

एक बार इंस्टॉल हो जाने पर, pg_top उस डेटाबेस में एक बहुत ही सटीक रीयल टाइम व्यू के रूप में काम करता है जिसकी वह निगरानी कर रहा है और 'pg_top' चलाने के लिए कमांड लाइन का उपयोग करने से इंटरैक्टिव PostgreSQL मॉनिटरिंग टूल लॉन्च होगा।

यह टूल वर्तमान में डेटाबेस से जुड़ी सभी प्रक्रियाओं पर प्रकाश डालने में मदद कर सकता है।

pg_top चल रहा है

डेटाबेस से कनेक्शन की जानकारी के साथ ही pg_top को लॉन्च करना यूनिक्स/लिनक्स स्टाइल 'टॉप' कमांड के समान ही है।

स्थानीय डेटाबेस होस्ट पर pg_top चलाने के लिए:

pg_top -h localhost -p 5432 -d severalnines -U postgres

दूरस्थ होस्ट पर pg_top चलाने के लिए, ध्वज -r या --remote-mode आवश्यक है, और होस्ट पर ही pg_proctab एक्सटेंशन इंस्टॉल किया गया है:

pg_top -r -h 192.168.1.20 -p 5432 -d severalnines -U postgres

स्क्रीन पर क्या है

pg_top को लॉन्च करते समय, हम काफी जानकारी के साथ एक डिस्प्ले देखते हैं।

लिनक्स पर pg_top से मानक आउटपुट

लोड औसत:
मानक शीर्ष आदेश की तरह, यह लोड औसत 1, 5 और 15 मिनट के अंतराल के लिए होता है।

अपटाइम:
नवीनतम रीबूट के बाद से सिस्टम के ऑनलाइन होने की कुल अवधि।

प्रक्रियाएँ:
कनेक्टेड डेटाबेस प्रक्रियाओं की कुल संख्या, कितनी चल रही हैं और कितनी सो रही हैं।

CPU आँकड़े:
CPU के आँकड़े, उपयोगकर्ता, सिस्टम और निष्क्रिय, अच्छी जानकारी के साथ-साथ iowait प्रतिशत के लिए प्रतिशत लोड दिखा रहे हैं।

मेमोरी:
उपयोग की गई मेमोरी की कुल मात्रा, मुफ़्त, बफ़र्स और कैश्ड में।

DB गतिविधि:
डेटाबेस गतिविधि के आँकड़े जैसे प्रति सेकंड लेन-देन, प्रति सेकंड रोलबैक की संख्या, बफ़र्स प्रति सेकंड, बफ़र्स हिट प्रति सेकंड, पंक्तियों की संख्या प्रति सेकंड पढ़ी जाती है, और पंक्तियाँ प्रति सेकंड लिखी जाती हैं।

DB I/O गतिविधि:
सिस्टम पर इनपुट आउटपुट के लिए गतिविधि, यह दर्शाती है कि प्रति सेकंड कितने पढ़ते और लिखते हैं, साथ ही प्रति सेकंड कितनी मात्रा में पढ़ा और लिखा जाता है।

DB डिस्क आँकड़े:
डेटाबेस डिस्क का कुल आकार, साथ ही कितना खाली स्थान।

स्वैप:
उपयोग किए गए स्वैप स्थान के बारे में जानकारी, यदि कोई हो।

प्रक्रियाएं:
डेटाबेस से जुड़ी प्रक्रियाओं की एक सूची, जिसमें किसी भी ऑटोवैक्यूम प्रकार की आंतरिक प्रक्रियाएं शामिल हैं। सूची में पीआईडी, प्राथमिकता, अच्छी राशि, उपयोग की गई निवासी मेमोरी, कनेक्शन की स्थिति, उपयोग किए गए सीपीयू सेकंड की संख्या, सीपीयू प्रतिशत, और वर्तमान कमांड प्रक्रिया चल रही है।

उपयोगी इंटरैक्टिव सुविधाएं

pg_top में कुछ सहभागी विशेषताएं हैं जिन्हें इसके चलने के दौरान एक्सेस किया जा सकता है। एक ? दर्ज करके एक पूरी सूची पाई जा सकती है, जो उपलब्ध सभी विभिन्न विकल्पों के साथ एक सहायता स्क्रीन लाएगा।

योजनाकार जानकारी

ई - निष्पादन योजना
ई दर्ज करने से एक प्रक्रिया आईडी के लिए एक संकेत मिलेगा जिसके लिए एक व्याख्या योजना दिखाने के लिए। यह "EXPLAIN ;" चलाने के बराबर है। डेटाबेस में मैन्युअल रूप से।

ए - व्याख्या विश्लेषण (अपडेट करें/सुरक्षित हटाएं)
ए दर्ज करने से एक प्रक्रिया आईडी के लिए एक संकेत मिलेगा जिसके लिए एक व्याख्या विश्लेषण योजना दिखाने के लिए। यह "EXPLAIN ANALYZE ;" चलाने के बराबर है। डेटाबेस में मैन्युअल रूप से।

आज श्वेतपत्र डाउनलोड करें क्लस्टरकंट्रोल के साथ पोस्टग्रेएसक्यूएल प्रबंधन और स्वचालन इस बारे में जानें कि पोस्टग्रेएसक्यूएल को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानना चाहिए। श्वेतपत्र डाउनलोड करें

प्रक्रिया जानकारी

Q - किसी प्रक्रिया की वर्तमान क्वेरी दिखाएं
Q दर्ज करने से एक प्रक्रिया आईडी के लिए एक संकेत मिलेगा जिसके लिए पूरी क्वेरी दिखाई जाएगी।

I - प्रति प्रक्रिया I/O आंकड़े दिखाता है (केवल Linux)
प्रविष्ट करने से I प्रक्रिया सूची को I/O डिस्प्ले पर स्विच करता है, प्रत्येक प्रक्रिया को डिस्क पर पढ़ता, लिखता है, आदि दिखाता है।

एल - एक प्रक्रिया द्वारा आयोजित ताले दिखाता है
एल दर्ज करने से एक प्रक्रिया आईडी के लिए एक संकेत मिलेगा जिसके लिए आयोजित ताले दिखाना है। इसमें डेटाबेस, टेबल, लॉक का प्रकार और लॉक दिया गया है या नहीं, शामिल होगा। लंबे समय तक चलने या प्रतीक्षा करने वाली प्रक्रियाओं की खोज करते समय उपयोगी।

संबंध जानकारी

R - उपयोगकर्ता तालिका आँकड़े दिखाएं।
R दर्ज करने से अनुक्रमिक स्कैन, अनुक्रमणिका स्कैन, INSERTs, UPDATEs, और DELETEs सहित तालिका आँकड़े दिखाई देते हैं, जो हाल की गतिविधि के लिए प्रासंगिक हैं।

X - उपयोगकर्ता अनुक्रमणिका आँकड़े दिखाएं
X दर्ज करने से अनुक्रमणिका के आँकड़े प्रदर्शित होते हैं जिनमें अनुक्रमणिका स्कैन, अनुक्रमणिका पढ़ना, और अनुक्रमणिका प्राप्त करना शामिल है, जो सभी हाल की गतिविधि के लिए प्रासंगिक हैं।

क्रमबद्ध करना

प्रदर्शन को निम्न में से किसी भी वर्ण के माध्यम से क्रमबद्ध किया जा सकता है।
M - स्मृति उपयोग द्वारा क्रमबद्ध करें
N - pid द्वारा क्रमबद्ध करें
P - CPU उपयोग द्वारा क्रमबद्ध करें
T - इसके अनुसार क्रमबद्ध करें समय

निम्नलिखित प्रविष्टियाँ o दबाने के बाद निर्दिष्ट हैं, जिससे अनुक्रमणिका, तालिका, और i/o स्टेट पेजों को भी छाँटने की अनुमति मिलती है।
o - सॉर्ट क्रम निर्दिष्ट करें (cpu, आकार, res, समय, कमांड)
wrc आँकड़े (idx_scan, idx_tup_fetch, idx_tup_read)
         तालिका आँकड़े (seq_scan, seq_tup_read, idx_scan, idx_tup_fetch, n_tup_ins, , , _tup_stats,
, , लिखता है, लिखता है, आदेश देता है)

कनेक्शन / क्वेरी मैनिपुलेशन

k - निर्दिष्ट प्रक्रियाओं को मारें
k दर्ज करने से एक प्रक्रिया के लिए एक संकेत मिलेगा, या डेटाबेस प्रक्रियाओं को मारने के लिए सूची मिलेगी।

r - एक प्रक्रिया का त्याग करें (केवल स्थानीय डेटाबेस, केवल रूट)
r दर्ज करने से एक अच्छे मूल्य के लिए एक संकेत मिलेगा, उसके बाद उस नए अच्छे मूल्य पर सेट करने के लिए प्रक्रियाओं की एक सूची होगी। यह सिस्टम में महत्वपूर्ण प्रक्रियाओं की प्राथमिकता को बदल देता है।

उदाहरण:"रेनिस 1 7004"

pg_top के विभिन्न उपयोग

pg_top का प्रतिक्रियाशील उपयोग

pg_top के लिए सामान्य उपयोग इंटरेक्टिव मोड है, जो हमें यह देखने की अनुमति देता है कि सिस्टम पर कौन से प्रश्न चल रहे हैं जो धीमे मुद्दों का सामना कर रहे हैं, उन प्रश्नों पर योजनाओं की व्याख्या करें, महत्वपूर्ण प्रश्नों को जल्दी से पूरा करने के लिए त्याग दें, या किसी भी प्रश्न को मार दें जिससे बड़ी मंदी हो। . आम तौर पर, यह डेटाबेस व्यवस्थापक को वही काम करने की अनुमति देता है जो सिस्टम पर मैन्युअल रूप से किया जा सकता है, लेकिन एक त्वरित और सभी एक विकल्प में।

pg_top का सक्रिय उपयोग

हालांकि यह बहुत सामान्य नहीं है, pg_top को 'बैच मोड' में चलाया जा सकता है, जो मानक आउट पर चर्चा की गई मुख्य जानकारी को प्रदर्शित करेगा, फिर बाहर निकलें। इसे निश्चित अंतराल पर चलाने के लिए स्क्रिप्ट किया जा सकता है, फिर किसी भी कस्टम प्रक्रिया को भेजा जा सकता है, जिसे व्यवस्थापक द्वारा सतर्क किया जाना चाहिए, उसके आधार पर वांछित, पार्स और उत्पन्न अलर्ट। उदाहरण के लिए, यदि सिस्टम का भार बहुत अधिक हो जाता है, यदि प्रति सेकंड मूल्य अपेक्षित लेन-देन से अधिक है, तो एक रचनात्मक कार्यक्रम कुछ भी समझ सकता है।

आम तौर पर, इस जानकारी को इकट्ठा करने और रिपोर्ट करने के लिए अन्य टूल होते हैं, लेकिन अधिक विकल्प होना हमेशा एक अच्छी बात है, और अधिक टूल उपलब्ध होने के साथ, सर्वोत्तम विकल्प मिल सकते हैं।

pg_top का ऐतिहासिक उपयोग

पिछले उपयोग की तरह, सक्रिय उपयोग, हम समय के साथ डेटाबेस की तरह दिखने के स्नैपशॉट लॉग करने के लिए बैच मोड में pg_top को स्क्रिप्ट कर सकते हैं। यह एक टाइमस्टैम्प के साथ एक टेक्स्ट फ़ाइल में लिखने, या इसे पार्स करने और रिपोर्ट बनाने के लिए एक रिलेशनल डेटाबेस में तारीख को संग्रहीत करने जितना आसान हो सकता है। यह एक बड़ी घटना के बाद अधिक जानकारी प्राप्त करने की अनुमति देगा, जैसे कि सुबह 4 बजे डेटाबेस क्रैश। जितना अधिक डेटा उपलब्ध होगा, उतनी ही अधिक संभावित समस्याएं मिल सकती हैं।

अधिक जानकारी

परियोजना के लिए दस्तावेज़ीकरण काफी सीमित है, और अधिकांश जानकारी linux मैन पेज में उपलब्ध है, जिसे 'man pg_top' चलाकर पाया जाता है। पोस्टग्रेएसक्यूएल समुदाय पोस्टग्रेएसक्यूएल मेलिंग सूचियों, या फ़्रीनोड पर मिलने वाले आधिकारिक आईआरसी चैटरूम, चैनल नाम #postgresql के माध्यम से प्रश्नों या मुद्दों में मदद कर सकता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql info_schema में सभी तालिकाओं की सूची बनाएं

  2. Oracle से PostgreSQL:माइग्रेट करने के कारण

  3. PostgreSQL -ग्रुप बाय क्लॉज में दिखाई देना चाहिए या एक समग्र फ़ंक्शन में उपयोग किया जाना चाहिए

  4. क्या मैं पहले से ही बनाए जाने के बाद, PostgreSQL तालिका में एक अद्वितीय बाधा जोड़ सकता हूं?

  5. यदि इसमें सक्रिय कनेक्शन हैं तो PostgreSQL डेटाबेस को कैसे छोड़ें?