Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

कस्टम मेट्रिक्स का उपयोग करके कैश हिट्स को ट्रैक करें बेहतर प्रदर्शन के लिए

AppSignal का उपयोग करने वाले ऐप को चलाने वाला हर सर्वर हर 30 सेकंड में सैंपल्स और मेट्रिक्स का एक संग्रह हमारे पुश API को भेजता है।

प्रत्येक रिक्वेस्ट में एक कुंजी होती है जिसका उपयोग हम यह निर्धारित करने के लिए करते हैं कि डेटा किस ऐप से आया है। ऐसा करने के लिए, हमें प्रत्येक इनकमिंग रिक्वेस्ट के लिए ऐप खोजने के लिए अपने डेटाबेस को क्वेरी करना होगा। प्रति माह तीस अरब रिक्वेस्ट के साथ, हम AppSignal को तेज़ बनाने के लिए क्वेरीज़ की संख्या कम करने के तरीके लगातार खोज रहे हैं।

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

कुछ स्थान हैं जहां हम कैश को अमान्य करते हैं, जैसे जब पुश प्रोसेस्ड समय अपडेट होता है या जब हम एक नया नेमस्पेस पहचानते हैं।

 

हमने यह निर्धारित करने के लिए कई काउंटर्स जोड़े कि इन कैश अमान्यताओं में से कौन सी दोषी थी। इस उदाहरण में हम app.cache.invalidate काउंटर को कुल अमान्यताओं की संख्या गिनने के लिए बढ़ाते हैं, और विशिष्ट अमान्यताओं के लिए app.cache.invalidate_push_time और app.cache.invalidate_namespaces जैसे विशिष्ट कुंजियों का उपयोग करते हैं।

 

उपरोक्त कस्टम मेट्रिक्स जोड़कर, हम समय के साथ अपने कैश हिट्स को ग्राफ़ करने में सक्षम थे। यह तुरंत स्पष्ट हो गया कि कौन सी कैश कुंजी क्वेरीज़ में वृद्धि का कारण बनी। app.cache.invalidate_namespaces कुंजी प्रत्येक रिक्वेस्ट के लिए अमान्य हो गई थी।

कस्टम मेट्रिक्स का उपयोग करके कैश हिट्स को ट्रैक करें बेहतर प्रदर्शन के लिए

कैशेबल रिक्वेस्ट्स की कुल संख्या app.cache.maybe के रूप में गिनी जाती है।

इस मुद्दे के लिए एक फिक्स डिप्लॉय करने के बाद, अमान्यताओं की संख्या शून्य हो गई जब तक कि ऐप के लिए नेमस्पेस अपडेट नहीं किए गए।

कस्टम मेट्रिक्स का उपयोग करके कैश हिट्स को ट्रैक करें बेहतर प्रदर्शन के लिए

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

हमें बताएं यदि कस्टम मेट्रिक्स के बारे में आपके कोई प्रश्न हैं और यदि हम उन्हें आपके एप्लिकेशन में सेट अप करने में आपकी सहायता कर सकते हैं। हम मदद करने में खुश हैं!

कस्टम मेट्रिक्स का उपयोग करके कैश हिट्स को ट्रैक करें बेहतर प्रदर्शन के लिए

रॉबर्ट बीकमैन

सह-संस्थापक के रूप में, रॉबर्ट ने हमारा पहला कमिट लिखा। वे हमारे सपोर्ट रोल-मॉडल भी हैं और कोड में छोटे विवरणों के बारे में सब जानते हैं। यात्रा करते हैं और तस्वीरें खींचते हैं (एक ही समय में)।

रॉबर्ट बीकमैन के सभी लेख


  1. क्या आपकी वर्डप्रेस साइट हैक हो गई है? स्कैन करें और आत्मविश्वास के साथ रिस्टोर करें क्या आपकी वर्डप्रेस साइट हैक हो गई है? स्कैन करें और आत्मविश्वास के साथ रिस्टोर करें

    क्या आपकी वर्डप्रेस हैक हो गई है? या आपको संदेह है कि आपकी वेबसाइट के साथ कुछ गड़बड़ है? यदि आपको संदेह है कि आपकी वर्डप्रेस हैक हो गई है, तो सबसे पहले आपको अपनी वेबसाइट को स्कैन करना चाहिए। यह हैक के बारे में आपके संदेह की पुष्टि करेगा, और आपकी साइट को अच्छी स्थिति में वापस लाने के लिए सर्वोत्तम

  1. C++ प्रोग्राम: बाइनरी ट्री का प्रीऑर्डर नॉन-रिकर्सिव ट्रैवर्सल C++ प्रोग्राम: बाइनरी ट्री का प्रीऑर्डर नॉन-रिकर्सिव ट्रैवर्सल

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप। ट्री के प्रत्येक नोड को ठीक एक बार चेक/प्रिंट करना शामिल है। प्रीऑर्डर ट्रैवर्सल क्रम: रूट → बाएं → दाएं। बाइनरी ट्री उदाहरण Preorder Traversal: 5 3 2 4 8 9 C++ प्रोग्राम उदाहरण (इटरेटिव/नॉन-रिकर्सिव) left); } } struct Node* insertNode(struct Node*

  1. पायथन प्रोग्राम: लीनियर सर्च एल्गोरिदम पायथन प्रोग्राम: लीनियर सर्च एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में लीनियर सर्च और इसके कार्यान्वयन के बारे में जानेंगे।एल्गोरिदमदिए गए arr[] के बाएं सबसे तत्व से शुरू करें और एक-एक करके तत्व x की तुलना arr[] के प्रत्येक तत्व से करेंयदि x किसी तत्व से मेल खाता है, तो इंडेक्स मान वापस करें।यदि x, arr[] के किसी भी त