Men-debug Klik Cache Jarak Jauh untuk Eksekusi Lokal

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.
Laporkan masalah Lihat sumber

Halaman ini menjelaskan cara menyelidiki cache yang tidak ditemukan dalam konteks eksekusi lokal.

Halaman ini mengasumsikan bahwa Anda memiliki build dan/atau pengujian yang berhasil dibuat secara lokal dan disiapkan untuk menggunakan caching jarak jauh, serta bahwa Anda ingin memastikan bahwa cache jarak jauh digunakan secara efektif.

Untuk mengetahui tips tentang cara memeriksa rasio cache ditemukan dan cara membandingkan log eksekusi antara dua pemanggilan Bazel, baca Men-debug Remote Cache yang Disimpan untuk Eksekusi Jarak Jauh. Semua yang disajikan dalam panduan tersebut juga berlaku untuk caching jarak jauh menggunakan eksekusi lokal. Namun, eksekusi lokal menghadirkan beberapa tantangan tambahan.

Memeriksa rasio cache ditemukan

Cache cache jarak jauh yang berhasil akan muncul di baris status, mirip dengan Rasio Cache Cache dengan Remote Execution.

Dalam output standar Bazel yang dijalankan, Anda akan melihat sesuatu seperti berikut:

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

Artinya, dari 7 tindakan yang dicoba, 3 tindakan mendapatkan cache jarak jauh dan 4 tindakan tidak memiliki cache ditemukan dan dieksekusi secara lokal menggunakan strategi linux-sandbox. Hit cache lokal tidak disertakan dalam ringkasan ini. Jika Anda mendapatkan 0 proses (atau angka yang lebih rendah dari yang diharapkan), jalankan bazel clean, diikuti dengan perintah build/test Anda.

Memecahkan masalah cache ditemukan

Jika Anda tidak mendapatkan rasio cache yang diharapkan, lakukan hal berikut:

Memastikan komunikasi berhasil dengan endpoint jarak jauh

Untuk memastikan build Anda berhasil berkomunikasi dengan cache jarak jauh, ikuti langkah-langkah di bagian ini.

  1. Periksa peringatan Anda apakah ada peringatan

    Dengan eksekusi jarak jauh, kegagalan berbicara dengan endpoint jarak jauh akan menyebabkan build Anda gagal. Di sisi lain, build lokal yang dapat di-cache tidak akan gagal jika tidak dapat di-cache. Periksa output pemanggilan Bazel Anda untuk melihat peringatan, seperti:

       WARNING: Error reading from the remote cache:
    

    atau

       WARNING: Error writing to the remote cache:
    

    Peringatan tersebut akan diikuti dengan pesan error yang menjelaskan masalah koneksi yang akan membantu Anda men-debug: misalnya, nama endpoint yang salah ketik atau menetapkan kredensial yang salah. Temukan dan atasi error tersebut. Jika pesan error yang Anda lihat tidak memberikan informasi yang cukup, coba tambahkan --verbose_failures.

  2. Ikuti langkah-langkah dari Memecahkan masalah hit cache untuk eksekusi jarak jauh guna memastikan pemanggilan Bazel yang menulis cache bisa mendapatkan hit cache di mesin yang sama dan di seluruh komputer.

  3. Pastikan pemanggilan Bazel yang membaca cache dapat memperoleh cache.

    a. Karena pemanggilan Bazel yang membaca cache akan memiliki penyiapan command line yang berbeda, berhati-hatilah saat memastikan bahwa pemanggilan tersebut disiapkan dengan benar untuk berkomunikasi dengan cache jarak jauh. Pastikan tanda --remote_cache ditetapkan dan tidak ada peringatan dalam output.

    b. Pastikan pemanggilan Bazel pembacaan cache Anda membuat target yang sama dengan pemanggilan Bazel yang menulis cache.

    sekitar tahun Ikuti langkah yang sama seperti untuk memastikan caching di seluruh mesin, untuk memastikan caching dari pemanggilan Bazel yang menulis cache ke pemanggilan Bazel yang membaca cache.