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