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

Sorun bildir Kaynağı görüntüle Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Bu sayfada, yerel yürütme bağlamında önbellek isabeti eksikliklerinin nasıl inceleneceği açıklanmaktadır.

Bu sayfada, yerel olarak başarıyla oluşturulan ve uzaktan önbelleğe almayı kullanacak şekilde ayarlanmış bir derlemeniz ve/veya testinizin olduğu ve uzaktan önbelleğin etkili bir şekilde kullanıldığından emin olmak istediğiniz varsayılmaktadır.

Önbellek isabet oranınızı kontrol etme ve iki Bazel çağrısı arasındaki yürütme günlüklerini karşılaştırma ile ilgili ipuçları için Uzak Yürütme İçin Uzak Önbellek İsabetlerinde Hata Ayıklama bölümüne bakın. Bu rehberde sunulan her şey, yerel yürütme ile uzak önbelleğe alma için de geçerlidir. Ancak yerel yürütme, bazı ek zorluklar sunar.

Önbellek isabet oranınızı kontrol etme

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

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

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

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

Önbellek isabetleriyle ilgili sorunları giderme

Beklediğiniz önbellek isabet oranını elde etmiyorsanız aşağıdakileri yapın:

Uzak uç nokta ile başarılı iletişim kurma

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

    Uzak yürütme ile uzak uç nokta ile iletişim kurulamaması, derlemenizin başarısız olmasına neden olur. Öte yandan, önbelleğe alınabilir bir yerel derleme, önbelleğe alınamıyorsa başarısız olmaz. Bazel çağrınızın çıktısında aşağıdaki gibi uyarıları 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, bağlantı sorununu ayrıntılı olarak açıklayan ve hata ayıklamanıza yardımcı olacak bir hata mesajı gösterilir. Örneğin, uç nokta adının yanlış yazılması veya kimlik bilgilerinin yanlış ayarlanması. Bu tür hataları bulup düzeltin. Gördüğünüz hata mesajı yeterli bilgi vermiyorsa --verbose_failures eklemeyi deneyin.

  2. Önbelleğe yazma Bazel çağrılarının aynı makinede ve makineler arasında önbellek isabeti 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 Bazel çağrılarının önbellek isabeti alabileceğinden emin olun.

    a. Önbellek okuma Bazel çağrıları farklı bir komut satırı kümesine sahip olacağından, uzak önbellekle iletişim kurmak için uygun şekilde ayarlandıklarından emin olmak üzere ek önlemler alın. --remote_cache işaretinin ayarlandığından ve çıkışta uyarı olmadığından emin olun.

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

    c. Önbelleğe yazma Bazel çağrınızdan önbelleğe okuma Bazel çağrınıza önbelleğe alma işleminin yapılmasını sağlamak için makineler arasında önbelleğe alma işleminin yapılmasını sağlama adımlarını uygulayın.