प्रोफाइल योर डेटाबेस

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

एक प्रोफ़ाइल बनाएं

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

  2. निम्नलिखित कमांड के साथ अपने डेटाबेस की प्रोफाइलिंग शुरू करें:

    firebase database:profile
    प्रोफाइलर एक स्थिति संदेश प्रदर्शित करता है क्योंकि यह आपके डेटाबेस से संचालन रिकॉर्ड करता है और प्रोफ़ाइल बनाता है।

  3. प्रोफ़ाइल पूर्ण करने और परिणाम प्रदर्शित करने के लिए Enter दबाएँ।

अपने परिणामों की व्याख्या करें

प्रोफाइलर टूल आपके डेटाबेस के संचालन के बारे में एकत्र किए गए डेटा को एकत्रित करता है और परिणामों को तीन प्राथमिक श्रेणियों में प्रदर्शित करता है: गति , बैंडविड्थ , और अनइंडेक्स्ड क्वेरीज़

रफ़्तार

स्पीड रिपोर्ट प्रत्येक ऑपरेशन प्रकार के लिए सर्वर के प्रतिक्रिया समय (मिलीसेकंड में) को मापती है। हालाँकि, स्पीड रिपोर्ट में मापी गई गति वास्तव में गति के अंतिम उपयोगकर्ताओं के अनुभव को प्रतिबिंबित नहीं कर सकती है। नेटवर्क स्थितियों सहित विभिन्न कारक, क्लाइंट पक्ष पर विलंबता जोड़ सकते हैं।

स्पीड रिपोर्ट में निम्नलिखित गुण शामिल हैं:

  • पथ: आपके डेटाबेस में वह पथ जहां परिचालन हुआ। यदि 25 से अधिक चाइल्ड नोड हैं, तो प्रोफाइलर टूल इन्हें मूल पथ में संक्षिप्त कर देता है और एक $wildcard मार्कर जोड़ता है। आप रिपोर्ट में अपने डेटाबेस की रूट निर्देशिका देख सकते हैं, जिसे फॉरवर्ड स्लैश / द्वारा दर्शाया गया है।
  • गणना: दिए गए पथ पर होने वाले ऑपरेशनों की संख्या।
  • औसत निष्पादन गति: उस पथ पर विशेष ऑपरेशन प्रकार को संभालने के लिए आवश्यक व्यावसायिक तर्क को निष्पादित करने में सर्वर को लगने वाला औसत समय। यहां मापा गया समय अंतराल नीचे वर्णित "औसत लंबित समय" द्वारा मापा गया समय अंतराल के बाद शुरू होता है।
  • औसत लंबित समय: अनुरोध निष्पादित होने से पहले कतारबद्ध होने में लगने वाला औसत समय। यह विलंब क्लाइंट द्वारा शुरू किए गए सभी अनुरोधों के लिए सामान्य है। कुल सर्वर-साइड अनुरोध विलंबता मोटे तौर पर उस अनुरोध के लंबित समय और निष्पादन गति का योग है।
  • अनुमति अस्वीकृत: दिए गए पथ पर संचालन की संख्या जो आपके डेटाबेस पर फायरबेस डेटाबेस नियमों द्वारा अवरुद्ध की गई थी।
ऑपरेशन प्रकार द्वारा स्पीड रिपोर्ट
निष्पादन गति पढ़ें डेटाबेस से डेटा पढ़ने के लिए क्लाइंट के अनुरोध के लिए सर्वर प्रतिक्रिया समय। रीड निष्पादन समय आम तौर पर पढ़े जाने वाले डेटा की मात्रा के साथ बदलता है, लेकिन कैश प्रीफेचिंग के कारण कुछ छोटी रीडिंग में भी देरी हो सकती है।
निष्पादन गति लिखें क्लाइंट द्वारा डेटाबेस में डेटा लिखने के अनुरोध के लिए सर्वर प्रतिक्रिया समय। लिखे जा रहे डेटा की मात्रा के साथ निष्पादन समय स्केल लिखें।
निष्पादन गति कनेक्ट करें डेटाबेस क्लाइंट को स्थापित करने के अनुरोधों के लिए सर्वर प्रतिक्रिया समय। कनेक्शन अनुरोधों के लिए विलंबता कनेक्शन प्रबंधन से संबंधित इन-मेमोरी सर्वर-साइड बहीखाता पर हावी है।
प्रसारण निष्पादन गति

रियलटाइम अपडेट के लिए दिए गए पथ को सुनने वाले क्लाइंट को डेटा वितरित करने में सर्वर को लगने वाला समय।

ब्रॉडकास्ट स्पीड रिपोर्ट में काउंट प्रॉपर्टी, हुए प्रसारणों की संख्या को एकत्रित करती है, न कि सूचना प्राप्त करने वाले ग्राहकों की संख्या को। उदाहरण के लिए, यदि 10 ग्राहक किसी दिए गए पथ पर सुन रहे थे, और सर्वर सभी 10 ग्राहकों के लिए एक अपडेट प्रसारित करता है, तो प्रसारण गिनती केवल 1 प्रसारण को दर्शाती है, भले ही 10 ग्राहकों को डेटा प्राप्त हुआ हो।

अनुमति अस्वीकृत संपत्ति ब्रॉडकास्ट स्पीड रिपोर्ट में शामिल नहीं है।

बैंडविड्थ

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

बैंडविड्थ रिपोर्ट में निम्नलिखित गुण शामिल हैं:

  • पथ: आपके डेटाबेस में वह पथ जहां परिचालन हुआ। यदि 25 से अधिक चाइल्ड नोड हैं, तो प्रोफाइलर टूल इन्हें मूल पथ में संक्षिप्त कर देता है।

  • कुल: दिए गए पथ पर सभी परिचालनों में उपयोग की गई कुल आउटगोइंग या इनकमिंग बाइट्स।

  • गणना: दिए गए पथ पर होने वाले ऑपरेशनों की संख्या।

  • औसत: दिए गए पथ पर सभी ऑपरेशनों में डाउनलोड या अपलोड किए गए बाइट्स की औसत संख्या (बाइट्स/राइट या बाइट्स/रीड)।

बैंडविड्थ रिपोर्ट
डाउनलोड किए गए बाइट्स क्लाइंट SDKs और REST API के माध्यम से भेजे गए रीड और ब्रॉडकास्ट ऑपरेशन के माध्यम से उपभोग किया गया डेटा।
अपलोड किए गए बाइट्स डेटाबेस सर्वर में आने वाले लेखन अनुरोधों के माध्यम से डेटा की खपत होती है। इनकमिंग के तहत 0 बाइट्स के साथ डिलीट लिखे जाने पर दिखाई देते हैं।

अनअनुक्रमित क्वेरीज़

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

अनइंडेक्स्ड क्वेरीज़ रिपोर्ट निम्नलिखित गुण प्रदर्शित करती है:

  • पथ: आपके डेटाबेस में वह पथ जहां अनअनुक्रमित क्वेरीज़ उत्पन्न हुईं।
  • अनुक्रमणिका: वह नियम जो आपको अनअनुक्रमित प्रश्नों को हल करने के लिए जोड़ना चाहिए। अपने डेटा को अनुक्रमित करने के बारे में और जानें।
  • गणना: दिए गए पथ पर होने वाली अनअनुक्रमित क्वेरीज़ की संख्या।

उन्नत प्रोफ़ाइलिंग

आपके डेटाबेस द्वारा संभाले जा रहे सभी ऑपरेशनों को देखने के लिए, अपने डेटाबेस को प्रोफाइल करते समय --raw ध्वज का उपयोग इस प्रकार करें:

firebase database:profile --raw

कच्चे आउटपुट में प्रत्येक ऑपरेशन के लिए क्लाइंट जानकारी भी शामिल होती है, जैसे userAgent स्ट्रिंग्स और आईपी पते। फायरबेस रीयलटाइम डेटाबेस ऑपरेशन प्रकार में अपने फायरबेस रीयलटाइम डेटाबेस में प्रोफाइल किए गए विभिन्न ऑपरेशनों के बारे में और जानें।

प्रोफाइलर टूल: बिलिंग टूल नहीं

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

फायरबेस द्वारा बिल किए गए नेटवर्क ट्रैफ़िक के कुछ सामान्य उदाहरण निम्नलिखित हैं जो आपके डेटाबेस प्रोफ़ाइल में शामिल नहीं हैं:

  • प्रोटोकॉल ओवरहेड: सत्र स्थापित करने और बनाए रखने के लिए सर्वर और क्लाइंट के बीच कुछ अतिरिक्त ट्रैफ़िक आवश्यक है। अंतर्निहित प्रोटोकॉल के आधार पर, इस ट्रैफ़िक में शामिल हो सकते हैं: फायरबेस रीयलटाइम डेटाबेस का रीयलटाइम प्रोटोकॉल ओवरहेड, वेबसॉकेट ओवरहेड, और HTTP हेडर ओवरहेड। हर बार एक कनेक्शन स्थापित होने पर, यह ओवरहेड, किसी भी एसएसएल एन्क्रिप्शन ओवरहेड के साथ मिलकर, कनेक्शन लागत में योगदान देता है। हालाँकि यह आम तौर पर बैंडविड्थ की एक बड़ी मात्रा नहीं है, यदि आपके पेलोड छोटे हैं या आप बार-बार, छोटे कनेक्शन बनाते हैं तो यह पर्याप्त हो सकता है।
  • एसएसएल एन्क्रिप्शन ओवरहेड: सुरक्षित कनेक्शन के लिए आवश्यक एसएसएल एन्क्रिप्शन ओवरहेड से जुड़ी एक लागत है। औसतन, शुरुआती हैंडशेक के लिए यह लागत लगभग 3.5KB है, और प्रत्येक आउटगोइंग संदेश पर TLS रिकॉर्ड हेडर के लिए लगभग 40B है। अधिकांश ऐप्स के लिए, यह आपके बिल का एक छोटा प्रतिशत है। हालाँकि, यदि आपके विशिष्ट मामले में बहुत अधिक एसएसएल हैंडशेक की आवश्यकता होती है तो यह एक बड़ा प्रतिशत बन सकता है। उदाहरण के लिए, जो डिवाइस टीएलएस सत्र टिकटों का समर्थन नहीं करते हैं उन्हें बड़ी संख्या में एसएसएल कनेक्शन हैंडशेक की आवश्यकता हो सकती है।

अपने बिल को समझने और उसका अनुमान लगाने के बारे में और पढ़ें।