로컬 실행을 위한 원격 캐시 적중 디버깅

문제 신고 소스 보기 1박 · 7.2 · 7.1 · 7.0 · 6.5 · 6.4

이 페이지에서는 로컬 캐시와 관련하여 캐시 부적중을 조사하는 방법을 설명합니다. 실행할 수 있습니다

이 페이지에서는 성공적으로 빌드하는 빌드 또는 테스트가 있다고 가정합니다. 원격 캐싱을 활용하도록 설정되어 있으며 원격 캐시가 효과적으로 사용되고 있는지 확인합니다.

캐시 적중률을 확인하고 실행을 비교하는 방법에 대한 팁 두 Bazel 호출 간의 로그를 확인하려면 원격 실행을 위한 원격 캐시 적중 디버깅. 이 가이드에 있는 모든 내용은 로컬 SSD를 사용한 원격 캐싱에도 적용됩니다. 실행할 수 있습니다 그러나 로컬 실행에는 몇 가지 추가적인 어려움이 있습니다.

캐시 적중률 확인

원격 캐시 적중이 성공하면 상태 표시줄에 다음과 같이 표시됩니다. 원격으로 캐시 적중률 실행.

Bazel 실행의 표준 출력에 있습니다.

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

즉, 시도한 작업 7건 중 3건에서 원격 캐시 적중이 발생했고 4건은 원격 캐시 적중을 받았습니다. 캐시 적중이 없고 linux-sandbox를 사용하여 로컬에서 실행됨 전략입니다. 로컬 캐시 적중은 이 요약에 포함되지 않습니다. 만약 프로세스를 0개 (또는 예상보다 낮은 수)로 설정하고 bazel clean를 실행한 후 빌드/테스트 명령어를 사용하세요

캐시 적중 문제 해결

캐시 적중률이 예상대로 나타나지 않으면 다음을 수행합니다.

원격 엔드포인트와의 성공적인 통신 보장

빌드가 원격 캐시와 성공적으로 통신하고 있는지 확인하려면 자세히 알아보겠습니다

  1. 출력에 따른 경고 확인

    원격 실행을 사용하면 원격 엔드포인트와의 통신에 실패하는 경우 확인할 수 있습니다 반면에 캐시 가능한 로컬 빌드는 을(를) 캐시할 수 없습니다. Bazel 호출 출력에서 다음과 같은 경고를 확인하세요. 방향:

       WARNING: Error reading from the remote cache:
    

    또는

       WARNING: Error writing to the remote cache:
    

    이러한 경고 뒤에는 연결을 자세히 설명하는 오류 메시지가 표시됩니다. 예를 들어 잘못 입력한 엔드포인트 이름 또는 사용자 인증 정보를 잘못 설정한 경우 이러한 오류를 찾아 해결합니다. 오류가 충분한 정보를 제공하지 않는 경우 --verbose_failures

  2. 원격으로 캐시 적중 문제 해결 실행을 캐시 작성 Bazel 호출이 캐시 적중을 가져올 수 있는지 확인 서로 다른 머신 간에 데이터를 읽을 수 있습니다

  3. 캐시를 읽는 Bazel 호출이 캐시 적중을 가져올 수 있는지 확인합니다.

    a. 캐시 읽기 Bazel 호출에는 다른 명령줄 집합이 포함되므로 다음 단계에 따라 올바르게 설정되도록 원격 캐시와 통신할 수 없습니다. --remote_cache 플래그가 설정되어 있는지 확인합니다. 출력에 경고가 표시되지 않습니다

    b. 캐시 읽기 Bazel 호출이 Bazel 호출을 추가합니다.

    c. 다음 단계에 따라 모든 Google 프로젝트에서 캐싱을 머신, 캐시 쓰기 Bazel 호출에서 Bazel 호출