MySQL डेटाबेस के प्रदर्शन की निगरानी करना लगभग हर MySQL DBA का दैनिक कार्य है। इस ब्लॉग पोस्ट में हम यह प्रदर्शित करने का प्रयास करेंगे कि आप अपने MySQL डेटाबेस के प्रदर्शन की निगरानी कैसे करें - ClusterControl के साथ।
निगरानी करने के लिए आपको क्या चाहिए?
सामान्य तौर पर, यदि आप MySQL के प्रदर्शन की निगरानी कर रहे हैं, तो आपको संभवतः निम्नलिखित बातों की निगरानी करने पर विचार करना चाहिए:
- क्वेरी प्रबंधन - अपने प्रश्नों के प्रदर्शन की निगरानी करना MySQL के प्रदर्शन को बेहतर बनाने के सबसे प्रभावी तरीकों में से एक साबित हो सकता है।
- बाहरी खोज क्वेरी करें - ऐतिहासिक डेटा हमें बहुत कुछ बता सकता है:इसका उपयोग ऐतिहासिक डेटा के आधार पर अपेक्षित क्वेरी प्रदर्शन की गणना करने के लिए भी किया जा सकता है, फिर क्वेरी आउटलेयर का पता लगाने के लिए अपेक्षित प्रदर्शन के विरुद्ध वर्तमान क्वेरी प्रदर्शन की तुलना करें।
- डेटाबेस स्कीमा प्रदर्शन - ClusterControl स्कीमा अंतर्दृष्टि प्रदान करके आपके MySQL इंस्टेंस के प्रदर्शन को अनुकूलित करने में आपकी मदद कर सकता है ताकि यह सुनिश्चित हो सके कि आपके स्कीमा आपके कार्यभार के लिए अनुकूलित हैं।
- लोड संतुलन - ProxySQL, HAProxy या MaxScale जैसे लोड बैलेंसर आपके डेटाबेस को उसकी क्षमता के अनुसार सर्वश्रेष्ठ प्रदर्शन कर सकते हैं। उन लोड बैलेंसरों को आसानी से ClusterControl का उपयोग करके तैनात किया जा सकता है।
ClusterControl का उपयोग करके डेटाबेस लोड संतुलन और क्वेरी प्रबंधन
ClusterControl निम्नलिखित लोड बैलेंसरों का समर्थन करता है:
- HAProxy
- MariaDB MaxScale
- ProxySQL
- रखा रखा गया (केवल वर्चुअल IP पता)
ध्यान दें कि ClusterControl आपके डेटाबेस क्लस्टर से अलग एक स्वतंत्र नोड पर होना चाहिए।
क्वेरी प्रबंधन के संबंध में, ClusterControl आपको निम्नलिखित को आत्मसात करने की अनुमति देता है (आप एक बार जब आप क्वेरी मॉनिटर टैब पर स्विच कर लेते हैं तो इन चीजों को देख सकते हैं):
- आप शीर्ष धीमी और लंबे समय तक चलने वाली क्वेरी देख सकते हैं।
- आप वर्तमान में चल रही क्वेरी की सूची देख सकते हैं।
- आप क्वेरी आउटलेर्स की सूची देख सकते हैं।
यह टैब आपको अपने सभी शीर्ष प्रश्नों की एक समग्र सूची प्रदान करता है आपके डेटाबेस क्लस्टर के सभी नोड्स। ClusterControl इन दो में से किसी एक तरीके से जानकारी प्राप्त करता है:
- प्रश्न या तो PERFORMANCE_SCHEMA से पुनर्प्राप्त किए जाते हैं या
- यदि PERFORMANCE_SCHEMA अक्षम या अनुपलब्ध है, तो ClusterControl स्लो क्वेरी लॉग की सामग्री को पार्स करेगा।
यदि धीमी क्वेरी लॉग उपयोग में है, तो केवल लंबी क्वेरी समय से अधिक की क्वेरी यहां सूचीबद्ध की जाएंगी।
लंबी क्वेरी समय उन प्रश्नों को एकत्रित करता है जो निष्पादित करने के लिए लंबी क्वेरी समय सेकंड से अधिक समय लेते हैं (उदाहरण के लिए, यदि लंबी क्वेरी समय 0.1 है तो केवल उन प्रश्नों को लॉग किया जाएगा जो निष्पादित करने में 0.1 सेकंड से अधिक समय लेते हैं), " लॉग क्वेरी इंडेक्स का उपयोग नहीं कर रहे हैं?" अनुक्रमणिका आदि के बिना प्रश्नों के संबंध में ClusterControl के व्यवहार को कॉन्फ़िगर करता है।
शीर्ष क्वेरी तालिका हर 30 सेकंड में स्वचालित रूप से ताज़ा हो जाती है (ताज़ा दर को बदला जा सकता है)। शीर्ष क्वेरी तालिका कॉलम में नमूना प्रश्नों की सूची, डेटाबेस नाम, क्वेरी होने की कुल संख्या, संचालन में शामिल पंक्तियों की संख्या, एक निश्चित क्वेरी के लिए बनाई गई अस्थायी तालिकाओं की संख्या आदि शामिल हैं। एकत्रित शीर्ष प्रश्नों की सूची सबसे सामान्य या सबसे धीमी क्वेरी दिखाने के लिए Occurence या Execution Time द्वारा भी आदेश दिया जा सकता है।
ClusterControl आपको वर्तमान में चल रही क्वेरी की सूची देखने की अनुमति भी देता है। यह पृष्ठ भी हर 30 सेकंड में स्वचालित रूप से ताज़ा हो जाता है और यह प्रदर्शित करता है:
- MySQL सर्वर जिससे प्रक्रिया को पुनः प्राप्त किया जाता है।
- कनेक्शन आईडी.
- डेटाबेस का नाम।
- MySQL उपयोगकर्ता जिसने स्टेटमेंट जारी किया है।
- MySQL थ्रेड निष्पादन समय सेकंड में।
- विवरण जारी करने वाले क्लाइंट का होस्टनाम।
- थ्रेड द्वारा निष्पादित कमांड का प्रकार।
- थ्रेड की स्थिति (जैसा कि MySQL के दस्तावेज़ में बताया गया है)
क्वेरी आउटलेयर पेज उन क्वेरी को दिखाता है जिन्हें "आउटलेयर" माना जाता है। दूसरे शब्दों में, यह पृष्ठ उन सभी प्रश्नों को दिखाता है जो उस प्रकार की सामान्य क्वेरी की तुलना में निष्पादित होने में अधिक समय लेते हैं, जिन्हें 2 सिग्मा + औसत_क्वेरी_टाइम के विलंबता विचलन के रूप में परिभाषित किया जाता है। यह पृष्ठ प्रदर्शित करता है:
- क्वेरी कैप्चर करने का सही समय।
- क्वेरी ही।
- SQL क्वेरी को निष्पादित करने में लगने वाला समय।
- SQL क्वेरी का औसत निष्पादन समय।
- मानक विचलन निष्पादन समय (माइक्रोसेकंड)।
- क्वेरी का अधिकतम निष्पादन समय (माइक्रोसेकंड)।
- क्वेरी का लॉक टाइम (माइक्रोसेकंड)।
क्वेरी मॉनिटर टैब सभी नोड्स में क्वेरी प्रोसेसिंग का सारांश प्रदान करता है क्लस्टर।
सारांश
जब आपके MySQL डेटाबेस के प्रदर्शन की निगरानी की बात आती है, तो ClusterControl चमत्कार कर सकता है। ClusterControl लोड बैलेंसरों की तैनाती को सरल बना सकता है, यह आपके प्रश्नों को आसानी से प्रबंधित करने और उनके प्रदर्शन की निगरानी करने में आपकी सहायता कर सकता है, ClusterControl ऐतिहासिक डेटा के आधार पर अपेक्षित क्वेरी प्रदर्शन की गणना भी कर सकता है।