En esta página, se describe cómo investigar las faltas de caché en el contexto de la ejecución local.
En esta página, se supone que tienes una compilación o prueba que se compila correctamente de forma local y está configurada para usar la caché remota, y que deseas asegurarte de que la caché remota se esté utilizando de manera eficaz.
Si quieres obtener sugerencias para verificar la tasa de aciertos de caché y comparar los registros de ejecución entre dos invocaciones de Bazel, consulta Cómo depurar los aciertos de caché remotos para la ejecución remota. Todo lo que se presenta en esa guía también se aplica al almacenamiento en caché remoto con ejecución. Sin embargo, la ejecución local presenta algunos desafíos adicionales.
Cómo verificar la tasa de aciertos de la caché
Los aciertos de caché remotos correctos aparecerán en la línea de estado, de manera similar a la tasa de aciertos de caché con ejecución remota.
En el resultado estándar de tu ejecución de Bazel, verás algo como lo siguiente: lo siguiente:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
Esto significa que, de 7 intentos de acciones, 3 recibieron un acierto de caché remota y 4
acciones no tuvieron aciertos de caché y se ejecutaron de forma local con linux-sandbox
de administración de amenazas. Los aciertos de caché local no se incluyen en este resumen. Si obtienes
0 procesos (o una cantidad menor a la esperada), ejecuta bazel clean
seguido de
tu comando de compilación o prueba.
Soluciona problemas de aciertos de caché
Si no obtienes la tasa de aciertos de caché que esperabas, haz lo siguiente:
Cómo garantizar una comunicación exitosa con el extremo remoto
Para asegurarte de que tu compilación se comunique correctamente con la caché remota, sigue los pasos que se indican en esta sección.
Comprueba el resultado en busca de advertencias
Con la ejecución remota, si falla la comunicación con el extremo remoto, tu compilación. Por otro lado, una compilación local almacenable en caché no fallaría si no pudiera almacenarse en caché. Comprueba el resultado de la invocación de Bazel en busca de advertencias, como las siguientes:
WARNING: Error reading from the remote cache:
o
WARNING: Error writing to the remote cache:
A estas advertencias aparecerán un mensaje de error que detalla la conexión problema que debería ayudarte a depurar, por ejemplo, nombre del extremo mal escrito o las credenciales están establecidas de forma incorrecta. Encuentra y soluciona cualquiera de esos errores. Si el mensaje de error que ves no te brinda suficiente información, intenta agregar
--verbose_failures
.Sigue los pasos de Cómo solucionar problemas de hits de caché para la ejecución remota para asegurarte de que tus invocaciones de Bazel que escriben en la caché puedan obtener hits de caché en la misma máquina y en varias máquinas.
Asegúrate de que tus invocaciones de Bazel de lectura de caché puedan obtener aciertos de caché.
a. Ya que las invocaciones de Bazel de lectura de caché tendrán un conjunto de líneas de comandos diferente tenga especial cuidado para asegurarse de que están debidamente configurados comunicarse con la caché remota. Asegúrate de que la marca
--remote_cache
esté establecida. y que no haya advertencias en el resultado.b. Asegúrate de que tus invocaciones de Bazel que leen la caché compilen los mismos destinos que las invocaciones de Bazel que escriben en la caché.
c. Sigue los mismos pasos que para garantizar el almacenamiento en caché en todas las máquinas, para garantizar el almacenamiento en caché de tu invocación de Bazel que escribe en la caché a tu invocación de Bazel que lee la caché.