लोकल प्रोग्राम चलाने के लिए रिमोट कैश हिट को डीबग करना

समस्या की शिकायत करें सोर्स देखें

इस पेज में स्थानीय कार्रवाई के मामले में, कैश मेमोरी में हुई गड़बड़ी की जांच करने का तरीका बताया गया है.

इस पेज में हम यह मान लेते हैं कि आपके पास एक बिल्ड और/या टेस्ट है जो स्थानीय तौर पर बनाया जाता है. साथ ही, इसे रिमोट कैश मेमोरी का इस्तेमाल करने के लिए सेट अप किया गया है. साथ ही, आपको यह पक्का करना है कि रिमोट कैश का सही तरीके से इस्तेमाल किया जा रहा हो.

कैश मेमोरी के हिट की दर देखने और दो बेज़ल इन्वेशन के बीच एक्ज़ीक्यूशन लॉग की तुलना करने का तरीका जानने के लिए, रिमोट कैश मेमोरी को एक्ज़ीक्यूट करने के लिए रिमोट कैश हिट डीबग करना लेख पढ़ें. इस गाइड में दी गई सारी जानकारी, लोकल एक्ज़ीक्यूशन के साथ रिमोट कैशिंग पर भी लागू होती है. हालांकि, स्थानीय तौर पर प्रोग्राम चलाने के दौरान कुछ और चुनौतियां भी आती हैं.

कैश मेमोरी का हिट रेट देखना

सफल रिमोट कैश हिट, स्टेटस लाइन में दिखेंगे. यह रिमोट एक्ज़ीक्यूट करने की सुविधा के साथ कैश हिट की दर की तरह ही दिखेगा.

Basel रन के स्टैंडर्ड आउटपुट में, आपको कुछ ऐसा दिखेगा:

   INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.

इसका मतलब यह है कि कोशिश की गई सात कार्रवाइयों में से, तीन कार्रवाइयों को रिमोट कैश मेमोरी हिट और चार कार्रवाइयों में कैश मेमोरी हिट नहीं मिली. इन्हें linux-sandbox रणनीति का इस्तेमाल करके, स्थानीय तौर पर लागू किया गया. इस खास जानकारी में लोकल कैश मेमोरी हिट शामिल नहीं किए जाते. अगर आपको कोई प्रोसेस नहीं मिल रही है (या उम्मीद से कम संख्या), तो bazel clean को चलाने के बाद बिल्ड/टेस्ट कमांड चलाएं.

कैश मेमोरी हिट से जुड़ी समस्या हल करना

अगर आपको कैश मेमोरी का हिट रेट अपनी उम्मीद के मुताबिक नहीं मिल रहा है, तो ये काम करें:

रिमोट एंडपॉइंट की मदद से कम्यूनिकेशन को पक्का करें

यह पक्का करने के लिए कि आपका बिल्ड रिमोट कैश के साथ सही तरीके से कनेक्ट हो रहा है या नहीं, इस सेक्शन में दिया गया तरीका अपनाएं.

  1. चेतावनियों के लिए आउटपुट की जांच करना

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

       WARNING: Error reading from the remote cache:
    

    या

       WARNING: Error writing to the remote cache:
    

    इस तरह की चेतावनियों के बाद, गड़बड़ी का एक मैसेज दिखेगा, जिसमें कनेक्शन से जुड़ी समस्या की जानकारी होगी. इससे आपको डीबग करने में मदद मिलेगी: उदाहरण के लिए, एंडपॉइंट का गलत नाम या गलत क्रेडेंशियल सेट करना. ऐसी गड़बड़ियों का पता लगाकर उन्हें ठीक करें. अगर आपको गड़बड़ी का जो मैसेज दिख रहा है वह अगर आपको ज़रूरी जानकारी नहीं देता है, तो --verbose_failures जोड़कर देखें.

  2. यह पक्का करने के लिए कि आपके कैश-राइटिंग 'बेज़ल' शुरू होने का कोड, एक ही मशीन और सभी मशीनों पर कैश हिट पा सकते हैं, यह पक्का करने के लिए कैश मेमोरी में सेव किए गए हिट का समस्या हल करने में दिए गए निर्देशों का पालन करें.

  3. पक्का करें कि कैश मेमोरी में पढ़ने की सुविधा देने वाले 'बेज़ल' शुरू करने वालों को कैश मेमोरी हिट मिल सकते हैं.

    a. कैश मेमोरी में सेव की जाने वाली 'बेज़ल' सुविधा को शुरू करने के लिए, अलग कमांड-लाइन सेट अप होता है. इसलिए, यह पक्का करें कि इन्हें रिमोट कैश के साथ कम्यूनिकेट करने के लिए सही तरीके से सेट अप किया गया हो. पक्का करें कि --remote_cache फ़्लैग सेट हो और आउटपुट में कोई चेतावनी न हो.

    b. पक्का करें कि कैश मेमोरी में सेव की जाने वाली आपकी सुविधा के बेज़ल इनवोकेशन, कैश मेमोरी में तैयार किए गए बेज़ल इनवोकेशन के जैसे टारगेट बनाते हों.

    c. यह पक्का करने के लिए कि कैश मेमोरी में डेटा सेव करने की सुविधा, 'बेज़ल' शुरू करने की प्रक्रिया से कैश मेमोरी में सेव हो रही है और कैश मेमोरी में सेव किए गए बेज़ल (बैकल) की सुविधा के शुरू होने तक, कैश मेमोरी में सेव होने की सुविधा भी उपलब्ध है. इसके लिए, सभी डिवाइसों पर कैश मेमोरी में डेटा को कैश मेमोरी में सेव करें, इसके लिए भी वही तरीका अपनाएं.