Como depurar hits de cache remoto para execução local

Informar um problema Mostrar fonte Por noite · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Nesta página, descrevemos como investigar ausências no cache no contexto de eventos execução.

Esta página presume que você tem um build e/ou teste que cria corretamente local e configurado para utilizar o armazenamento em cache remoto, e que você quer garantir que o cache remoto está sendo utilizado.

Para dicas sobre como verificar a taxa de ocorrência em cache e comparar a execução entre duas invocações do Bazel, consulte Depuração de hits do cache remoto para execução remota. Tudo o que foi apresentado neste guia também se aplica ao armazenamento em cache remoto com execução. No entanto, a execução local apresenta alguns desafios adicionais.

Como verificar a taxa de ocorrência em cache

As ocorrências bem-sucedidas em cache remoto serão exibidas na linha de status, semelhante a Taxa de ocorrências em cache com Remote Execução.

Na saída padrão da execução do Bazel, você verá algo como seguinte:

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

Isso significa que, das 7 tentativas de ação, 3 obtiveram uma ocorrência em cache remoto e 4 ações não tiveram ocorrências em cache e foram executadas localmente usando linux-sandbox estratégia. As ocorrências em cache local não estão incluídas nesse resumo. Se você estiver recebendo 0 processos (ou um número menor do que o esperado), execute bazel clean seguido de seu comando de build/teste.

Solução de problemas de ocorrências em cache

Se você não estiver recebendo a taxa de ocorrência em cache esperada, faça o seguinte:

Garantir uma comunicação bem-sucedida com o endpoint remoto

Para garantir que o build esteja se comunicando com o cache remoto, siga estas etapas: as etapas desta seção.

  1. Verifique se há avisos na saída

    Com a execução remota, uma falha ao se comunicar com o endpoint remoto falharia seu build. Por outro lado, uma compilação local armazenável em cache não falharia se não é possível armazenar em cache. Verifique a saída da invocação do Bazel em busca de avisos, como: como:

       WARNING: Error reading from the remote cache:
    

    ou

       WARNING: Error writing to the remote cache:
    

    Esses avisos serão seguidos por uma mensagem de erro que detalha a conexão. problema que deve ajudá-lo a depurar: por exemplo, nome de endpoint digitado incorretamente ou as credenciais foram configuradas incorretamente. Localize e resolva esses erros. Se o erro a mensagem exibida não fornecer informações suficientes, tente adicionar --verbose_failures:

  2. Siga as etapas em Solução de problemas de ocorrência em cache para acesso remoto execução para garantir que as invocações do Bazel de gravação em cache recebam ocorrências em cache. na mesma máquina e entre máquinas.

  3. Verifique se as invocações do Bazel de leitura de cache podem receber ocorrências em cache.

    a. Como as invocações do Bazel na leitura de cache terão um conjunto de linha de comando diferente tome cuidado adicional para garantir que eles estejam se comunicar com o cache remoto. Verifique se a sinalização --remote_cache está definida e não há avisos na saída.

    b. Verifique se as invocações do Bazel de leitura de cache criam os mesmos destinos que grava em cache as invocações do Bazel.

    c. Siga as mesmas etapas para garantir o armazenamento em cache em máquinas, para garantir o armazenamento em cache da invocação do Bazel de gravação em cache para o na invocação de leitura do cache.