Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

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

  2. : निम्न आदेश के साथ अपने डेटाबेस की रूपरेखा शुरू

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

  3. प्रेस प्रोफ़ाइल को पूरा करने और परिणाम प्रदर्शित करने के दर्ज करें।

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

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

स्पीड

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

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

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

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

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

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

बैंडविड्थ

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

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

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

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

  • गणना: कार्य है कि दिए गए पथ पर हुई की संख्या।

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

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

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

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

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

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

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

सभी कार्यों को अपने डेटाबेस से निपटने है देखने के लिए, का उपयोग --raw इस प्रकार है, जब आप अपने डेटाबेस प्रोफ़ाइल झंडा:

firebase database:profile --raw

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

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

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

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

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

बारे में अधिक पढ़ें समझने और अपने बिल का आकलन