इस पेज पर, स्थानीय प्रोसेस के संदर्भ में कैश मेमोरी में डेटा न होने की समस्या की जांच करने का तरीका बताया गया है.
इस पेज पर यह माना गया है कि आपके पास एक ऐसा बिल्ड और/या टेस्ट है जो स्थानीय तौर पर सही तरीके से बिल्ड होता है और रिमोट कैश मेमोरी का इस्तेमाल करने के लिए सेट अप किया गया है. साथ ही, आपको यह पक्का करना है कि रिमोट कैश मेमोरी का सही तरीके से इस्तेमाल किया जा रहा है.
कैश हिट रेट देखने और दो Bazel इंवोकेशन के बीच, प्रोग्राम के चलने से जुड़े लॉग की तुलना करने के तरीके के बारे में सलाह पाने के लिए, रिमोट प्रोग्राम चलाने के लिए, रिमोट कैश हिट को डीबग करना लेख पढ़ें. उस गाइड में बताई गई सभी बातें, स्थानीय तौर पर लागू होने वाली रिमोट कैश मेमोरी पर भी लागू होती हैं. हालांकि, स्थानीय तौर पर लागू करने में कुछ और समस्याएं आती हैं.
कैश मेमोरी में डेटा के ऐक्सेस होने की दर देखना
रिमोट कैश मेमोरी में हिट होने की जानकारी, स्टेटस लाइन में दिखेगी. यह जानकारी, रिमोट से कैश मेमोरी में डेटा अपडेट करने की सुविधा के साथ कैश मेमोरी में हिट होने की दर की तरह ही दिखेगी.
आपके Basel रन के स्टैंडर्ड आउटपुट में, आपको कुछ ऐसा दिखेगा फ़ॉलो किया जा रहा है:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
इसका मतलब यह है कि कोशिश की गई 7 कार्रवाइयों में से, 3 को रिमोट कैश हिट और 4 को मिला
कार्रवाइयों में कैश हिट नहीं थे और उन्हें 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. कैश मेमोरी में पढ़ने की सुविधा, बेज़ल और इनवोकेशन में अलग-अलग कमांड लाइन सेट होगी है. तो यह पक्का करने के लिए कि वे सही तरीके से सेट अप हों रिमोट कैश से संपर्क कर सकते हैं. पक्का करें कि
--remote_cache
फ़्लैग सेट किया गया हो और आउटपुट में कोई चेतावनी नहीं है.b. पक्का करें कि कैश मेमोरी में सेव की गई आपकी 'बेज़ल' सुविधा का इस्तेमाल करके, वही टारगेट बनाए गए हों जो कैश मेमोरी में तैयार बेज़ल इन्वेशन.
c. के बीच कैश मेमोरी में डेटा सेव करना पक्का करने के लिए, यह तरीका अपनाएं मशीनें, आपके कैश मेमोरी-रीडिंग बेज़ल इनवोकेशन.