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

7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

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

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

कैश मेमोरी में डेटा के ऐक्सेस होने की दर देखना

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

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

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

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

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

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

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

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

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

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

       WARNING: Error reading from the remote cache:
    

    या

       WARNING: Error writing to the remote cache:
    

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

  2. रिमोट तौर पर प्रोग्राम चलाने के लिए, कैश मेमोरी में डेटा सेव होने से जुड़ी समस्या हल करना में दिया गया तरीका अपनाएं. इससे यह पक्का किया जा सकता है कि कैश मेमोरी में डेटा सेव करने वाले Bazel के अनुरोध, एक ही मशीन और सभी मशीनों पर कैश मेमोरी में डेटा सेव कर पाएं.

  3. पक्का करें कि कैश मेमोरी पढ़ने वाले Bazel को कैश मेमोरी हिट मिल सकें.

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

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

    c. यह पक्का करने के लिए कि सभी मशीनों पर कैश मेमोरी में डेटा सेव हो रहा है, उसी तरीके का इस्तेमाल करें. इससे कैश मेमोरी में डेटा सेव करने वाले ऐप्लिकेशन के बोले जाने पर बोले जा रहे शब्दों और कैश मेमोरी में सेव किए गए बेज़ल ऐप्लिकेशन को कैश मेमोरी में सेव किया जा सकेगा.