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

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

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

  2. अपने डेटाबेस को निम्न कमांड के साथ प्रोफाइल करना प्रारंभ करें:

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

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

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

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

रफ़्तार

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

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

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

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

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

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

बैंडविड्थ

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

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

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

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

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

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

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

अनइंडेक्स्ड प्रश्न

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

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

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

उन्नत रूपरेखा

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

firebase database:profile --raw

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

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

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

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

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

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