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

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

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

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

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

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

# अंतिम पुश प्रोसेस्ड समय अपडेट करें यदि
if app.last_push_processed_at < 5.minutes.ago
  app.set(:last_push_processed_at => Time.now)
  Rails.cache.delete(cache_key)
end
if namespaces_diff.any?
  app.add_to_set(:namespaces => namespaces_diff)
  Rails.cache.delete(cache_key)
end

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

# अंतिम पुश प्रोसेस्ड समय अपडेट करें
if app.last_push_processed_at < 5.minutes.ago
  app.set(:last_push_processed_at => Time.now)
  Rails.cache.delete(cache_key)
  Appsignal.increment_counter('app.cache.invalidate', 1)
  Appsignal.increment_counter('app.cache.invalidate_push_time', 1)
end
if namespaces_diff.any?
  app.add_to_set(:namespaces => namespaces_diff)
  Rails.cache.delete(cache_key)
  Appsignal.increment_counter('app.cache.invalidate', 1)
  Appsignal.increment_counter('app.cache.invalidate_namespaces', 1)
end

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

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

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

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

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

  1. डॉक्टर की अपॉइंटमेंट कभी न भूलें: विश्वसनीय रिमाइंडर ऐप से तारीखें और दवाएं प्रबंधित करें डॉक्टर की अपॉइंटमेंट कभी न भूलें: विश्वसनीय रिमाइंडर ऐप से तारीखें और दवाएं प्रबंधित करें

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

  1. एंड्रॉयड पर ऐप कैश क्लियर करने की स्टेप-बाय-स्टेप गाइड: तेज परफॉरमेंस के लिए एंड्रॉयड पर ऐप कैश क्लियर करने की स्टेप-बाय-स्टेप गाइड: तेज परफॉरमेंस के लिए

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

  1. एंड्रॉइड पर कैश क्लियर करने की स्टेप-बाय-स्टेप गाइड – तेज़ परफॉरमेंस के लिए एंड्रॉइड पर कैश क्लियर करने की स्टेप-बाय-स्टेप गाइड – तेज़ परफॉरमेंस के लिए

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