डेटाबेस प्रोफ़ाइलर की मदद से अपने Firebase Realtime Database की परफ़ॉर्मेंस मेज़र करें यह टूल, Firebase सीएलआई में पहले से मौजूद होता है. प्रोफ़ाइलर टूल, सभी लॉग को लॉग करता है एक दी गई समयावधि के दौरान आपके डेटाबेस में होने वाली गतिविधि को रिकॉर्ड करता है. इसके बाद, ज़्यादा जानकारी वाली रिपोर्ट. अपने विज्ञापनों की समस्याओं को हल करने के लिए, ज़्यादा जानकारी वाली रिपोर्ट देखें डेटाबेस की परफ़ॉर्मेंस, समस्या वाले इलाकों का पता लगाने, और इंडेक्स नहीं की गई क्वेरी को कम करने के लिए किया जा सकता है.
प्रोफ़ाइल बनाएं
Firebase Realtime Database की प्रोफ़ाइल बनाने से पहले, पक्का कर लें कि Firebase सीएलआई का सबसे नया वर्शन है और आपने इसे उस डेटाबेस और प्रोजेक्ट के लिए शुरू कर दिया है जिसे आपको प्रोफ़ाइल बनाना है. नोट जोड़ें यह ज़रूरी है कि आप प्रोफ़ाइल के लिए उस प्रोजेक्ट के संपादक या मालिक हों.
नीचे दिए गए कमांड की मदद से अपने डेटाबेस की प्रोफ़ाइल बनाना शुरू करें:
प्रोफ़ाइलर, आपकी कार्रवाइयों को रिकॉर्ड करते समय, एक स्टेटस मैसेज दिखाता है डेटाबेस तैयार करता है और प्रोफ़ाइल बनाता है.firebase database:profile
प्रोफ़ाइल पूरी करने और नतीजे देखने के लिए, Enter दबाएं.
अपने नतीजों को समझना
प्रोफ़ाइलर टूल आपके डेटाबेस के बारे में इकट्ठा किए गए डेटा को एग्रीगेट करता है कार्रवाइयों और नतीजों को तीन मुख्य कैटगरी में दिखाता है: स्पीड, बैंडविड्थ, और इंडेक्स नहीं की गई क्वेरी.
स्पीड
स्पीड रिपोर्ट हर एक के लिए सर्वर के प्रतिक्रिया समय (मिलीसेकंड में) को मापती है ऑपरेशन टाइप. हालांकि, स्पीड रिपोर्ट में मापी गई रफ़्तार शायद असली उपयोगकर्ताओं के अनुभव की गति को दिखाता है. अलग-अलग बातें, जिनमें ये शामिल हैं नेटवर्क की शर्तों के हिसाब से, क्लाइंट-साइड पर इंतज़ार का समय जोड़ा जा सकता है.
स्पीड रिपोर्ट में ये प्रॉपर्टी शामिल होती हैं:
- पाथ: आपके डेटाबेस का वह पाथ जहां कार्रवाइयां हुई हैं. अगर आपने
25 से ज़्यादा चाइल्ड नोड हैं, प्रोफ़ाइलर टूल इन्हें छोटा करके
पैरंट पाथ जोड़ा जाता है और
$wildcard
मार्कर जोड़ा जाता है. आपको अपने डेटाबेस की रिपोर्ट की रूट डायरेक्ट्री को फ़ॉरवर्ड स्लैश/
से दिखाया जाता है. - काउंट: दिए गए पाथ पर हुई कार्रवाइयों की संख्या.
- औसत एक्ज़ीक्यूशन स्पीड: सर्वर को एक्ज़ीक्यूट करने में लगने वाला औसत समय उस पाथ पर मौजूद खास ऑपरेशन टाइप को मैनेज करने के लिए, Business लॉजिक की ज़रूरत होती है. यहां मापा गया समय अंतराल "औसत लंबित समय" जिनकी जानकारी नीचे दी गई है.
- मंज़ूरी बाकी है: अनुरोधों को सूची में भेजने में बिताया गया औसत समय काम नहीं करता है. यह देरी क्लाइंट की ओर से किए गए सभी अनुरोधों में आम तौर पर होती है. कॉन्टेंट बनाने सर्वर साइड से अनुरोध करने में लगने वाला कुल समय, करीब-करीब उस अनुरोध के लंबित समय और निष्पादन की गति.
- अनुमति न दी गई: इसका मतलब है कि किसी खास समयावधि पर हुई कार्रवाइयों की संख्या वह पाथ जिसे इसके ज़रिए ब्लॉक किया गया था Firebase डेटाबेस के नियम आपके डेटाबेस पर लागू होता है.
कार्रवाई के टाइप के हिसाब से स्पीड की रिपोर्ट | |
---|---|
एक्ज़ीक्यूशन स्पीड पढ़ें | क्लाइंट के अनुरोधों का डेटा पढ़ने के लिए, सर्वर से जवाब मिलने में लगने वाला समय डेटाबेस. पढ़ने की प्रोसेस में लगने वाला समय, आम तौर पर डेटा की मात्रा के हिसाब से तय होता है पढ़े जा रहे हैं, लेकिन कुछ छोटे रीड भी कैश मेमोरी की वजह से देरी से दिख सकते हैं प्रीफ़ेच करना. |
एक्ज़ीक्यूशन स्पीड लिखें | क्लाइंट के अनुरोधों के लिए डेटाबेस. निष्पादन समय मापते समय उस डेटा की मात्रा को लिखना लिखा गया है. |
एक्ज़ीक्यूशन स्पीड कनेक्ट करें | डेटाबेस क्लाइंट को भेजे जाने वाले अनुरोधों के लिए सर्वर से जवाब मिलने में लगने वाला समय. इन-मेमोरी सर्वर-साइड की वजह से, कनेक्शन से जुड़े अनुरोधों में देरी ज़्यादा होती है कनेक्शन मैनेजमेंट से जुड़ी हिसाब-किताब रखना. |
ब्रॉडकास्ट चलाए जाने की स्पीड | क्लाइंट को डेटा वितरित करने में सर्वर को लगने वाला समय रीयलटाइम अपडेट के लिए दिए गए पाथ को सुनना. Count प्रॉपर्टी ब्रॉडकास्ट स्पीड रिपोर्ट, ब्रॉडकास्ट होने वाले ब्रॉडकास्ट की संख्या इकट्ठा करती है, न कि उन क्लाइंट की संख्या जिन्हें जानकारी मिली. उदाहरण के लिए, अगर 10 क्लाइंट दिए गए पाथ पर सुन रहे थे, और सर्वर ने पूरे 10 क्लाइंट, ब्रॉडकास्ट की संख्या सिर्फ़ 1 ब्रॉडकास्ट दिखाती है, भले ही 10 क्लाइंट डेटा मिला. अनुमति न दी गई प्रॉपर्टी को इसमें शामिल नहीं किया जाता ब्रॉडकास्ट की स्पीड की रिपोर्ट. |
बैंडविड्थ
बैंडविथ रिपोर्ट से यह अहम जानकारी मिलती है कि आपका डेटाबेस कितना डेटा खर्च करता है दोनों कार्रवाइयों के लिए किया जा सकता है. आपको बैंडविड्थ का इस्तेमाल नहीं करना चाहिए बिलिंग का अनुमान लगाने के लिए रिपोर्ट करें, क्योंकि इसमें इस्तेमाल किया गया बैंडविथ शामिल नहीं है कुछ अन्य कार्रवाइयों के लिए भी किया जा सकता है. जैसे, अपने डेटाबेस की प्रोफ़ाइल बनाना. बैंडविथ रिपोर्ट करीब-करीब यह अनुमान लगाती है कि आपके डेटाबेस में और उससे आने वाली कार्रवाइयों को पढ़ने, लिखने, और ब्रॉडकास्ट करने के लिए इस्तेमाल किया गया डेटा. यह टूल, परफ़ॉर्मेंस का आकलन करता है, न कि बिलिंग का अनुमान लगाने वाला टूल.
बैंडविथ रिपोर्ट में ये प्रॉपर्टी शामिल होती हैं:
पाथ: आपके डेटाबेस का वह पाथ जहां कार्रवाइयां हुई हैं. अगर आपने 25 से ज़्यादा चाइल्ड नोड हैं, प्रोफ़ाइलर टूल इन्हें छोटा करके पैरंट पाथ.
कुल: सभी कार्रवाइयों में इस्तेमाल किए गए आउटगोइंग या इनकमिंग बाइट की कुल संख्या दिए गए पाथ पर.
काउंट: दिए गए पाथ पर हुई कार्रवाइयों की संख्या.
औसत: डाउनलोड या अपलोड किए गए बाइट की औसत संख्या दिए गए पाथ पर कार्रवाइयां (बाइट/राइट या बाइट/रीड).
बैंडविथ रिपोर्ट | |
---|---|
डाउनलोड की गई बाइट | रीड और ब्रॉडकास्ट ऑपरेशन के ज़रिए इस्तेमाल किया गया डेटा, जो क्लाइंट के ज़रिए भेजा जाता है SDK टूल और REST API. |
अपलोड की गई बाइट | डेटाबेस सर्वर में आने वाले, लिखने के अनुरोधों के ज़रिए इस्तेमाल किया गया डेटा. हटाए गए आइटम को 0 बाइट के साथ लिखा जाता है के तौर पर दिखाया जाता है. |
इंडेक्स नहीं की गई क्वेरी
इंडेक्स न की गई क्वेरी महंगी हो सकती हैं, क्योंकि क्लाइंट पूरा डेटा किसी जगह को चुनें और फिर उस पर क्वेरी करें. यह इससे ज़्यादा बैंडविथ इस्तेमाल करता है ज़रूरी है. इंडेक्स न की गई ज़्यादा से ज़्यादा क्वेरी का समाधान करें, ताकि की परफ़ॉर्मेंस को मॉनिटर किया जा सकता है.
इंडेक्स नहीं की गई क्वेरी रिपोर्ट में ये प्रॉपर्टी दिखती हैं:
- पाथ: आपके डेटाबेस का वह पाथ जहां इंडेक्स नहीं की गई क्वेरी मिलीं.
- इंडेक्स करना: वह नियम जिसे आपको इंडेक्स नहीं की गई क्वेरी के समाधान के लिए जोड़ना चाहिए. ज़्यादा जानें इंडेक्स करने के बारे में ज़्यादा जानने के लिए, अपना डेटा इंडेक्स करना लेख पढ़ें.
- गिनती: दिए गए पाथ पर, इंडेक्स नहीं की गई क्वेरी की संख्या.
ऐडवांस प्रोफ़ाइलिंग
आपका डेटाबेस जिन कार्रवाइयों को मैनेज करता है उन्हें देखने के लिए, --raw
का इस्तेमाल करें
फ़्लैग करते समय अपने डेटाबेस को इस प्रकार से फ़्लैग करें:
firebase database:profile --raw
रॉ आउटपुट में, हर कार्रवाई के लिए क्लाइंट की जानकारी भी शामिल होती है, जैसे
userAgent
स्ट्रिंग और आईपी पते. अलग-अलग ऑपरेशन के बारे में ज़्यादा जानें
Firebase Realtime Database ऑपरेशन टाइप के तहत आपके Firebase Realtime Database की प्रोफ़ाइल बनाई गई है.
प्रोफ़ाइलर टूल: बिलिंग टूल नहीं
बैंडविथ की लागत का अनुमान लगाने के लिए, प्रोफ़ाइलर टूल का इस्तेमाल न करें. प्रोफ़ाइलर टूल ताकि आपको आपके डेटाबेस की परफ़ॉर्मेंस की पूरी जानकारी मिल सके. कार्रवाइयों पर नज़र रखी जाती है और समस्याओं को हल किया जाता है, न कि बिलिंग का अनुमान लगाने के लिए. यह इसमें नेटवर्क ट्रैफ़िक को शामिल नहीं किया जाता है. यह जवाबों में भेजा गया ऐप्लिकेशन डेटा.
Firebase से बिल किए गए नेटवर्क ट्रैफ़िक के कुछ सामान्य उदाहरण नीचे दिए गए हैं जो आपकी डेटाबेस प्रोफ़ाइल में शामिल नहीं हैं:
- प्रोटोकॉल ओवरहेड: सर्वर और क्लाइंट के बीच कुछ अतिरिक्त ट्रैफ़िक एक सेशन शुरू करने और बनाए रखने के लिए ज़रूरी है. अलग-अलग कैटगरी के हिसाब से प्रोटोकॉल का इस्तेमाल करते समय, इस ट्रैफ़िक में Firebase रीयल टाइम डेटाबेस का रीयल टाइम शामिल हो सकता है प्रोटोकॉल ओवरहेड, WebSocket ओवरहेड, और एचटीटीपी हेडर ओवरहेड. हर बार कनेक्शन स्थापित हो जाता है, यह ओवरहेड, किसी भी SSL एन्क्रिप्शन के साथ जुड़ा होता है ओवरहेड, कनेक्शन की लागतों में योगदान देता है. हालांकि, आम तौर पर ऐसा नहीं होता है बहुत ज़्यादा बैंडविड्थ है, लेकिन अगर आपका पेलोड कम है, तो यह काफ़ी बड़ा हो सकता है या आप बार-बार, छोटे कनेक्शन बनाते हैं.
- एसएसएल एन्क्रिप्शन ओवरहेड: एसएसएल से जुड़े शुल्क के लिए शुल्क लिया जाता है सुरक्षित कनेक्शन के लिए एन्क्रिप्शन ओवरहेड ज़रूरी है. औसतन, यह लागत शुरुआती हैंडशेक के लिए करीब 3.5 केबी और हर आउटगोइंग मैसेज पर TLS रिकॉर्ड हेडर. ज़्यादातर ऐप्लिकेशन के लिए, यह एक छोटा साइज़ होता है का प्रतिशत तय करती है. हालांकि, यह एक बड़ी संख्या हो सकती है, अगर आपके खास मामले में कई एसएसएल हैंडशेक की ज़रूरत होती है. उदाहरण के लिए, डिवाइस जो TLS सेशन के टिकट के साथ काम नहीं करते उन्हें बड़ी संख्या में एसएसएल की ज़रूरत पड़ सकती है कनेक्शन हैंडशेक करता है.
अपने बिल को समझने और उसका अनुमान लगाने के बारे में ज़्यादा पढ़ें.