Yerel Yürütme İçin Uzak Önbellek İsabetlerinde Hata Ayıklama

Sorun bildir Kaynağı göster

Bu sayfada, yerel yürütme bağlamında önbellekte olmama durumlarının nasıl araştırılacağı açıklanmaktadır.

Bu sayfa, başarılı bir şekilde yerel olarak derlenmiş ve uzaktan önbelleğe almayı kullanacak şekilde ayarlanmış bir derleme ve/veya testinizin olduğunu ve uzak önbelleğin etkili bir şekilde kullanıldığından emin olmak istediğinizi varsayar.

Önbellek isabet oranınızı kontrol etme ve iki Bazel çağrısı arasındaki yürütme günlüklerini karşılaştırmayla ilgili ipuçları için Uzaktan Yürütme İçin Uzaktan Önbellek İsabetlerinde Hata Ayıklama bölümüne bakın. Bu kılavuzda sunulan tüm bilgiler, yerel yürütmeyle uzaktan önbelleğe alma için de geçerlidir. Ancak yerel uygulama başka zorlukları da beraberinde getirir.

Önbellek isabet oranınız kontrol ediliyor

Başarılı uzaktan önbellek isabetleri, durum satırında Uzaktan Yürütme ile Önbellek İsabetleri oranı'na benzer şekilde görünür.

Bazel çalıştırmanızın standart çıktısında aşağıdakine benzer bir sonuç görürsünüz:

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

Bu, 7 işlemden 3'ünün uzak önbellek isabeti aldığı, 4 işlemin önbellek isabetinin olmadığı ve linux-sandbox stratejisi kullanılarak yerel olarak yürütüldüğü anlamına gelir. Yerel önbellek isabetleri bu özete dahil değildir. 0 işlem (veya beklenenden daha düşük bir sayı) alıyorsanız bazel clean komutunu ve ardından derleme/test komutunuzu çalıştırın.

Önbellek isabetleriyle ilgili sorunları giderme

Beklediğiniz önbellek isabeti oranını alamıyorsanız aşağıdakileri yapın:

Uzak uç nokta ile başarılı iletişim kurulmasını sağlayın

Derlemenizin uzak önbellekle başarılı bir şekilde iletişim kurduğundan emin olmak için bu bölümdeki adımları uygulayın.

  1. Çıkışınızda uyarı olup olmadığını kontrol edin

    Uzaktan yürütmede, uzak uç noktayla iletişim kurulamazsa derlemeniz başarısız olur. Öte yandan, önbelleğe alınabilir bir yerel derleme, önbelleğe alınamadığı takdirde başarısız olmaz. Bazel çağrınızın çıktısında aşağıdaki gibi uyarılar olup olmadığını kontrol edin:

       WARNING: Error reading from the remote cache:
    

    veya

       WARNING: Error writing to the remote cache:
    

    Bu tür uyarıların ardından, hata ayıklamanıza yardımcı olması gereken bağlantı sorununu ayrıntılı bir şekilde açıklayan hata mesajı (ör. yanlış yazılmış uç nokta adı veya yanlış ayarlanmış kimlik bilgileri) gösterilir. Bu tür hataları bulup giderin. Gördüğünüz hata mesajı yeterli bilgi içermiyorsa --verbose_failures eklemeyi deneyin.

  2. Önbelleğe yazma Bazel çağrılarınızın aynı makinede ve makineler arasında önbellek isabetleri alabilmesini sağlamak için Uzaktan yürütme için önbellek isabetleriyle ilgili sorunları giderme bölümündeki adımları uygulayın.

  3. Önbellek okuma yapan Bazel çağrılarınızın önbellek isabetleri alabildiğinden emin olun.

    a. Önbellek okuma yapan Bazel çağrılarının farklı bir komut satırı ayarı olacağından, bunların uzak önbellekle iletişim kurmak için doğru şekilde ayarlandığından emin olun. --remote_cache işaretinin ayarlandığından ve çıkışta uyarı olmadığından emin olun.

    b. Önbellek okuma Bazel çağrılarınızın önbelleğe yazma Bazel çağrılarıyla aynı hedefleri oluşturduğundan emin olun.

    c. Önbellek yazma Bazel çağrınızdan önbellek okuma Bazel çağrınıza önbelleğe alınmasını sağlamak için makineler genelinde önbelleğe alma ile aynı adımları uygulayın.