इस पेज पर बताया गया है कि लोकल एक्ज़ीक्यूशन के मामले में, कैश मेमोरी में सेव न हुई चीज़ों की जांच कैसे की जा सकती है.
इस पेज में यह माना जाता है कि आपके पास एक ऐसा बिल्ड और/या टेस्ट है जो सही तरीके से लोकल लेवल पर बनता है और रिमोट कैशिंग का इस्तेमाल करने के लिए सेट अप किया गया है. साथ ही, आप यह भी पक्का करना चाहते हैं कि रिमोट कैश मेमोरी का सही तरीके से इस्तेमाल हो रहा है.
अपने कैश हिट दर की जांच करने के तरीके के बारे में सलाह के लिए और दो 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 को शुरू करने में उसी मशीन और सभी मशीन पर कैश हिट मिल पा रहे हैं.
यह पक्का करें कि आपकी कैश मेमोरी में सेव किए गए Bazel शुरू करने वालों को कैश हिट मिलें.
a. कैश-रीडिंग Bazel शुरू करने की प्रक्रिया में एक अलग कमांड-लाइन सेट अप होगा. ऐसा करते समय, यह पक्का करें कि वे रिमोट कैश के साथ काम करने के लिए सही तरीके से सेट अप की गई हों. पक्का करें कि
--remote_cache
फ़्लैग सेट हो और आउटपुट में कोई चेतावनी नहीं दिखती हो.b. यह पक्का करें कि आपकी कैश मेमोरी में पढ़े जाने वाले Bazel शुरू करने के सफ़र में उतने ही टारगेट बनाए गए हैं जितने कैश में लिखने वाले Bazel के न्योते हैं.
c. वही तरीका अपनाएं जो मशीन में कैश मेमोरी पक्का करने के लिए इस्तेमाल किया जाता है. साथ ही, यह पक्का करने के लिए कि आपका कैश-राइटिंग बेज़ल शुरू हो गया है और कैश मेमोरी में पढ़ने वाला Bazel शुरू करें.