प्रदर्शन निगरानी एक सफल एप्लिकेशन चलाने का एक महत्वपूर्ण हिस्सा है। किसी चीज़ के प्रदर्शन को बताने के सबसे बुनियादी तरीकों में से एक है हर बार जब यह होता है तो इसकी अवधि को मापना और उससे आंकड़े निकालना।
माध्य
मानों के संग्रह का माध्य या औसत यह देखने की अच्छी शुरुआत है कि कोई चीज़ कितनी अच्छी या बुरी तरह व्यवहार करती है। इसकी गणना विचाराधीन सभी मानों को जोड़कर और फिर घटनाओं की संख्या से विभाजित करके की जाती है।
रूबी में, यह वही है जो माध्य प्रतिक्रिया समय की गणना जैसा दिखेगा:
नोट: उदाहरण में, विभाजन करते समय अधिक सटीक परिणाम के लिए, हम कुल अवधि मान को फ्लोट में कास्ट करते हैं। अन्यथा, रूबी निकटतम पूर्णांक तक राउंड डाउन कर देगा, 4 के बजाय 4.5 लौटाएगा।
एक और उपयोगी आंकड़ा माध्यिका है। हालांकि यह समान लगता है, मानों के संग्रह के माध्य और माध्यिका में अंतर है।
माध्यिका वह मान है जो एक सेट के ऊपरी आधे को निचले आधे से अलग करता है।
विषम संख्या में मानों वाले डेटासेट के लिए, आप पहले मानों को सॉर्ट करके, फिर मध्य संख्या का चयन करके माध्यिका प्राप्त करते हैं। सम संख्या में मानों वाले सेट के लिए, उन्हें सॉर्ट करने के बाद, माध्यिका दो मध्य संख्याओं का माध्य होगी।
यह आंकड़ा डेटा में भारी तिरछापन या लंबी पूंछ देखने का एक अच्छा तरीका है।
उपरोक्त अवधियों के लिए माध्य 335.83 होगा क्योंकि 2000ms के एकल आउटलीअर के कारण। माध्यिका, जो केवल 3.5 है, इंगित करती है कि एक तिरछापन है।
किसी डेटासेट के माध्य और माध्यिका दोनों की गणना करके, आप पता लगा सकते हैं कि क्या कोई बड़े आउटलीअर या लंबी पूंछ हैं।
माध्य के साथ समस्या
जबकि माध्य और माध्यिका प्रदर्शन के अच्छे संकेतक हैं, वे पूरी कहानी नहीं बताते। यदि आप दस बार एक वेबपेज का अनुरोध करते हैं, तो माध्य बहुत कम हो सकता है, लेकिन एक या अधिक अनुरोधों को पूरा होने में बहुत लंबा समय लग सकता है।
नीचे दी गई छवि AppSignal में एक निश्चित क्रिया के लिए 99वें (नीला) और 90वें (हरा) पर्सेंटाइल और माध्य (लाल) दिखाती है। आप देख सकते हैं कि 99वां और 90वां माध्य से काफी दूर हैं और कुछ स्पाइक्स हैं। इसका मतलब है कि जबकि आपके औसत ग्राहक का अनुभव अच्छा है, हर बार एक यूजर होता है जिसे पेज रेंडर होने के लिए लगभग दोगुना इंतजार करना पड़ता है। आदर्श रूप से, आप इन सभी मूल्यों को एक-दूसरे के जितना संभव हो उतना करीब लाना चाहेंगे, जिससे आपके सभी यूजर्स के लिए अधिक सुसंगत अनुभव बने।

उदाहरण के लिए, निम्न अवधि सेट को देखें जहां 10 ग्राहक 100 मिलीसेकंड और 1 सेकंड के बीच की अवधि के साथ एक पेज का अनुरोध करते हैं।
इसके परिणामस्वरूप केवल 190ms का माध्य होगा जबकि एक यूजर का 1 सेकंड प्रतिक्रिया समय का बहुत बुरा अनुभव था। केवल माध्य को ट्रैक करते समय, यह सोचना आसान है कि आपकी वेबसाइट का प्रदर्शन बहुत अच्छा है, जबकि वास्तव में हर बार एक यूजर का भयानक अनुभव होता है।
उपरोक्त उदाहरण केवल 10 अनुरोधों के लिए है, लेकिन कल्पना करें कि यदि आपके पास प्रति दिन एक हजार अनुरोध थे, तो इसका मतलब उनमें से सौ का भयानक अनुभव होगा।
पर्सेंटाइल
मानों के वितरण का बेहतर विचार देने के लिए, हम पर्सेंटाइल का उपयोग करते हैं। पर्सेंटाइल माध्यिका के समान हैं - एक संख्या जो डेटासेट में एक बिंदु को दर्शाती है जहां सेट का आधा संख्या से नीचे है और आधा ऊपर। पर्सेंटाइल इस अर्थ में समान हैं कि 20वां पर्सेंटाइल का अर्थ है कि डेटासेट में 20% संख्याएं उस संख्या से नीचे हैं।
निम्न (सॉर्टेड) सेट को देखते हुए:
यदि हम 20वें पर्सेंटाइल को जानना चाहते हैं, तो हम इसे निम्न तरीके से गणना कर सकते हैं: सेट में 10 मान हैं। वांछित मान स्थिति 1 पर है (20.0 / 100 * 10 - 1) क्योंकि हमारे सरणी शून्य से शुरू होती हैं। चूंकि इस सरणी में सम संख्या में आइटम हैं, हमें इंडेक्स (2) और इंडेक्स + 1 (3) के बीच माध्य की गणना करनी होगी। इसके परिणामस्वरूप 20वें पर्सेंटाइल के लिए 150 का मान होगा।
एक बहुत ही भोली रूबी इम्प्लीमेंटेशन इस तरह दिखेगी:
यह percentile फ़ंक्शन हमारे median गणना के बहुत समान दिखता है और वास्तव में, median 50वें पर्सेंटाइल के समान है।
AppSignal आपके एप्लिकेशन के लिए प्रदर्शन मेट्रिक्स जनरेट करने के लिए उपरोक्त आंकड़ों का उपयोग करता है। हम केवल माध्य/औसत पर भरोसा नहीं करते बल्कि आपके अनुरोधों के वितरण का बेहतर विचार देने के लिए 90वें और 95वें पर्सेंटाइल की गणना करते हैं। हमारे प्रदर्शन टूर पेज पर अधिक जानें।
विषमताएं
पर्सेंटाइल और औसत की गणना के तरीके के कारण, कभी-कभी 90वां पर्सेंटाइल माध्य से नीचे गिर सकता है, उदाहरण के लिए, निम्न डेटासेट को देखते हुए:
यह हमें 182.73 का माध्य देगा, और केवल 1 का 90वां पर्सेंटाइल।
यदि आपका मीट्रिक कलेक्शन सिस्टम केवल 90वां पर्सेंटाइल और माध्य दिखाता है, तो आप अभी भी यह निष्कर्ष निकाल पाएंगे कि आपके डेटासेट में कहीं एक बड़ा आउटलीअर है यदि 90वां पर्सेंटाइल औसत से नीचे गिरता है।
👋 यदि आप इस लेख को पसंद कर रहे हैं, तो हमने रूबी (ऑन रेल्स) प्रदर्शन के बारे में बहुत कुछ लिखा है, हमारे रूबी प्रदर्शन निगरानी चेकलिस्ट को देखें।
आप इस पोस्ट के लगभग 100% पर हैं
अभी के लिए बस इतना! एक अन्य पोस्ट में, हम इस बारे में बात करने जा रहे हैं कि हम क्वांटाइल्स का उपयोग करके अपने सभी ग्राहकों के अनुरोधों के लिए पर्सेंटाइल को कुशलतापूर्वक कैसे स्टोर और गणना करते हैं। यदि आपके पास आंकड़ों और APM, एरर ट्रैकिंग या प्रदर्शन निगरानी के बारे में कोई प्रश्न या टिप्पणी है, तो हमें ट्विटर @AppSignal पर या ईमेल के माध्यम से संपर्क करें।
रॉबर्ट बीकमैन
एक को-फाउंडर के रूप में, रॉबर्ट ने हमारा पहला कमिट लिखा। वह हमारे सपोर्ट रोल-मॉडल भी हैं और कोड में छोटे-छोटे विवरणों के बारे में सब कुछ जानते हैं। यात्रा करते हैं और फोटोग्राफ करते हैं (एक ही समय में)।
रॉबर्ट बीकमैन के सभी लेख