इस पेज पर, लोकल एक्ज़ीक्यूशन के संदर्भ में कैश हिट न होने की वजहों की जांच करने का तरीका बताया गया है.
इस पेज पर यह माना गया है कि आपके पास कोई ऐसा बिल्ड और/या टेस्ट है जो स्थानीय तौर पर अच्छी तरह से काम करता है. साथ ही, यह रिमोट कैशिंग का इस्तेमाल करने के लिए सेट अप है. इसके अलावा, यह भी माना गया है कि आपको यह पक्का करना है कि रिमोट कैश का असरदार तरीके से इस्तेमाल किया जा रहा है.
कैश हिट रेट की जांच करने और Bazel के दो इनवोकेशन के बीच, एक्ज़ीक्यूशन लॉग की तुलना करने के बारे में सलाह पाने के लिए, रिमोट एक्ज़ीक्यूशन के लिए रिमोट कैश हिट को डीबग करना लेख पढ़ें. उस गाइड में दी गई सभी जानकारी, लोकल एक्ज़ीक्यूशन के साथ रिमोट कैशिंग पर भी लागू होती है. हालांकि, लोकल एक्ज़ीक्यूशन में कुछ और समस्याएं भी आ सकती हैं.
कैश हिट रेट की जांच करना
रिमोट कैश हिट होने पर, स्टेटस लाइन में जानकारी दिखेगी. यह जानकारी, रिमोट एक्ज़ीक्यूशन के साथ कैश हिट रेट की तरह ही दिखेगी.
Bazel रन के स्टैंडर्ड आउटपुट में, आपको कुछ ऐसा दिखेगा:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
इसका मतलब है कि सात कार्रवाइयों में से तीन के लिए रिमोट कैश हिट हुआ. वहीं, चार कार्रवाइयों के लिए कैश हिट नहीं हुआ. इसलिए, उन्हें linux-sandbox रणनीति का इस्तेमाल करके स्थानीय तौर पर एक्ज़ीक्यूट किया गया. इस खास जानकारी में, लोकल कैश हिट शामिल नहीं हैं. अगर आपको 0 प्रोसेस (या उम्मीद से कम संख्या) दिखती है, तो bazel clean कमांड चलाएं. इसके बाद, अपना बिल्ड/टेस्ट कमांड चलाएं.
कैश हिट से जुड़ी समस्याओं को हल करना
अगर आपको कैश हिट रेट, उम्मीद के मुताबिक नहीं मिल रहा है, तो यह तरीका अपनाएं:
पक्का करें कि रिमोट एंडपॉइंट के साथ अच्छी तरह से कम्यूनिकेट किया जा रहा हो
यह पक्का करने के लिए कि आपका बिल्ड, रिमोट कैश के साथ अच्छी तरह से कम्यूनिकेट कर रहा है, इस सेक्शन में दिया गया तरीका अपनाएं.
चेतावनी के लिए अपना आउटपुट देखें
रिमोट एक्ज़ीक्यूशन के दौरान, रिमोट एंडपॉइंट से कम्यूनिकेट न कर पाने पर, आपका बिल्ड फ़ेल हो जाएगा. वहीं, कैश किया जा सकने वाला लोकल बिल्ड, कैश न कर पाने पर फ़ेल नहीं होगा. Bazel के इनवोकेशन के आउटपुट में, चेतावनियां देखें. जैसे:
WARNING: Error reading from the remote cache:या
WARNING: Error writing to the remote cache:इस तरह की चेतावनियों के बाद, गड़बड़ी का मैसेज दिखेगा. इसमें कनेक्शन की समस्या के बारे में जानकारी दी जाएगी. इससे आपको डीबग करने में मदद मिलेगी. उदाहरण के लिए, एंडपॉइंट का नाम गलत टाइप करना या क्रेडेंशियल गलत तरीके से सेट करना. इस तरह की गड़बड़ियों को ढूंढें और उन्हें ठीक करें. अगर आपको दिखने वाले गड़बड़ी के मैसेज में पूरी जानकारी नहीं मिलती है, तो
--verbose_failuresजोड़कर देखें.पक्का करें कि कैश-रीडिंग Bazel के इनवोकेशन, कैश हिट कर सकें.
a. कैश-रीडिंग Bazel के इनवोकेशन के लिए, कमांड-लाइन का सेटअप अलग होगा. इसलिए, यह पक्का करने के लिए ज़्यादा ध्यान दें कि वे रिमोट कैश के साथ कम्युनिकेट करने के लिए सही तरीके से सेट अप किए गए हों. पक्का करें कि
--remote_cacheफ़्लैग सेट हो और आउटपुट में कोई चेतावनी न हो.b. पक्का करें कि कैश-रीडिंग Bazel के इनवोकेशन, कैश-राइटिंग Bazel के इनवोकेशन की तरह ही टारगेट बनाते हों.
c. एक से ज़्यादा मशीनों पर कैशिंग पक्का करने के लिए वही तरीका अपनाएं. इससे यह पक्का किया जा सकेगा कि कैश-राइटिंग Bazel के इनवोकेशन से कैश-रीडिंग Bazel के इनवोकेशन तक कैशिंग हो.