Halaman ini menjelaskan cara menyelidiki cache miss dalam konteks eksekusi lokal.
Halaman ini mengasumsikan bahwa Anda memiliki build dan/atau pengujian yang berhasil di-build secara lokal dan disiapkan untuk memanfaatkan penyimpanan dalam cache jarak jauh, dan Anda ingin memastikan bahwa cache jarak jauh dimanfaatkan secara efektif.
Untuk mengetahui tips tentang cara memeriksa rasio hit cache dan cara membandingkan log eksekusi antara dua pemanggilan Bazel, lihat Men-debug Hit Cache Jarak Jauh untuk Eksekusi Jarak Jauh. Semua yang disajikan dalam panduan tersebut juga berlaku untuk penyimpanan dalam cache jarak jauh dengan eksekusi lokal. Namun, eksekusi lokal menimbulkan beberapa tantangan tambahan.
Memeriksa rasio hit cache
Hit cache jarak jauh yang berhasil akan muncul di baris status, mirip dengan Rasio Hit Cache dengan Eksekusi Jarak Jauh.
Dalam output standar dari proses Bazel, Anda akan melihat sesuatu seperti berikut:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
Artinya, dari 7 tindakan yang dicoba, 3 mendapatkan hit cache jarak jauh dan 4
tindakan tidak mendapatkan hit cache dan dieksekusi secara lokal menggunakan strategi linux-sandbox
. Hit cache lokal tidak disertakan dalam ringkasan ini. Jika Anda mendapatkan
0 proses (atau jumlah yang lebih rendah dari yang diharapkan), jalankan bazel clean
, diikuti dengan
perintah build/pengujian Anda.
Memecahkan masalah cache hit
Jika Anda tidak mendapatkan rasio hit cache yang diharapkan, lakukan hal berikut:
Memastikan keberhasilan komunikasi dengan endpoint jarak jauh
Untuk memastikan build Anda berhasil berkomunikasi dengan cache jarak jauh, ikuti langkah-langkah di bagian ini.
Periksa output Anda untuk melihat peringatan
Dengan eksekusi jarak jauh, kegagalan untuk berkomunikasi dengan endpoint jarak jauh akan membuat 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 melakukan proses debug: misalnya, nama endpoint salah ketik atau kredensial salah ditetapkan. Temukan dan atasi error tersebut. Jika pesan error yang Anda lihat tidak memberikan informasi yang cukup, coba tambahkan
--verbose_failures
.Ikuti langkah-langkah dari Memecahkan masalah hit cache untuk eksekusi jarak jauh untuk memastikan bahwa pemanggilan Bazel yang menulis cache Anda dapat memperoleh hit cache di mesin yang sama dan di seluruh mesin.
Pastikan pemanggilan Bazel yang membaca cache Anda dapat memperoleh hit cache.
a. Karena pemanggilan Bazel yang membaca cache akan memiliki penyiapan set command line yang berbeda, berhati-hatilah untuk memastikan bahwa pemanggilan tersebut disiapkan dengan benar untuk berkomunikasi dengan cache jarak jauh. Pastikan tanda
--remote_cache
disetel dan tidak ada peringatan dalam output.b. Pastikan pemanggilan Bazel yang membaca cache membangun target yang sama dengan pemanggilan Bazel yang menulis cache.
c. Ikuti langkah-langkah yang sama seperti untuk memastikan penyiapan cache di seluruh mesin, untuk memastikan penyiapan cache dari pemanggilan Bazel yang menulis cache ke pemanggilan Bazel yang membaca cache.