Dataflow 모니터링 인터페이스의 단계 정보 패널에는 작업의 개별 단계에 관한 정보가 표시됩니다. 단계는 파이프라인의 단일 변환을 나타냅니다. 복합 변환에는 하위 단계가 포함됩니다.
단계 정보 패널에는 다음 정보가 표시됩니다.
- 단계의 측정항목입니다.
- 단계의 입력 및 출력 컬렉션에 관한 정보입니다.
- 이 단계에 해당하는 단계입니다.
- 부차 입력 측정항목
단계 정보 패널을 사용하여 각 단계에서 작업이 어떻게 실행되는지 파악하고 최적화할 수 있는 단계를 찾습니다.
단계 정보 보기
단계 정보를 보려면 다음 단계를 수행하세요.
Google Cloud 콘솔에서 Dataflow > 작업 페이지로 이동합니다.
작업을 선택합니다.
작업 그래프 탭을 클릭하여 작업 그래프를 확인합니다. 작업 그래프는 파이프라인의 각 단계를 상자로 나타냅니다.
단계를 클릭합니다. 단계에 관한 정보가 단계 정보 패널에 표시됩니다.
복합 변환의 하위 단계를 보려면
노드 펼치기 화살표를 클릭합니다.
단계 측정항목
단계 정보 패널에는 단계에 대한 다음 측정항목이 표시됩니다.
시스템 워터마크 및 지연
시스템 워터마크는 모든 이벤트 시간이 완전히 처리된 최신 타임스탬프입니다. 시스템 워터마크 지연 시간은 데이터 항목이 처리를 기다린 최대 시간입니다.
데이터 워터마크 및 지연
데이터 워터마크는 이 단계의 데이터 입력 완료 예상 시간을 나타내는 타임스탬프입니다. 데이터 워터마크 지연 시간은 최신 입력 이벤트 시간과 데이터 워터마크 간의 차이입니다.
실제 경과 시간
실제 경과 시간은 모든 작업자의 모든 스레드에서 다음 작업에 소요된 대략적인 총 시간입니다.
- 단계 초기화
- 데이터 처리
- 데이터 무작위 섞기
- 단계 종료
복합 단계의 경우 실제 경과 시간은 각 구성 단계에서 소요된 시간의 합계와 같습니다.
실제 경과 시간을 통해 속도가 느린 단계를 식별하고 파이프라인의 어떤 부분에서 필요한 것보다 더 많은 시간이 소요되는지 진단할 수 있습니다.
병목 현상 상태
Dataflow가 병목 현상을 감지하면 원인(알려진 경우)과 함께 알림이 표시됩니다. 자세한 내용은 병목 현상 문제 해결을 참고하세요.
최대 작업 지연 시간
최대 작업 지연 시간은 수신 메시지 또는 기간 만료를 처리하기 위해 이 단계에서 소요되는 최대 시간입니다. 이 측정항목은 단일 단계로 결합된 단계 전반의 합산으로 측정되므로 값은 전체 단계를 나타냅니다.
키 병렬 처리
키 병렬 처리는 이 단계에서 데이터 처리에 사용되는 대략적인 키 수입니다.
입력/출력 모음
단계 정보 패널에는 단계의 각 입력 및 출력 컬렉션에 관한 다음 정보가 표시됩니다.
처리량 차트 이 차트는 컬렉션의 처리량을 보여줍니다. 차트를 초당 요소 수 또는 초당 바이트 수로 볼 수 있습니다. 이 측정항목에 관한 자세한 내용은 처리량을 참고하세요.
컬렉션에 추가된 요소의 수입니다.
컬렉션의 예상 크기(바이트)입니다.
최적화된 단계
스테이지는 Dataflow에서 실행되는 단일 작업 단위를 나타냅니다. 작업 그래프에서 단계를 선택하면 단계 정보 패널에 이 단계를 실행하는 단계의 이름과 실행 중, 중지됨, 성공과 같은 현재 상태가 표시됩니다.
작업의 단계에 대한 자세한 내용을 보려면 실행 세부정보 탭을 사용하세요.
부차 입력 측정항목
부차 입력은 변환이 요소를 처리할 때마다 액세스할 수 있는 추가 입력입니다. 변환이 부차 입력을 생성하거나 사용하는 경우 측면 정보 패널에 부차 입력 컬렉션의 측정항목이 표시됩니다.
복합 변환이 부차 입력을 생성하거나 사용하는 경우 부차 입력을 생성하거나 사용하는 특정 하위 변환이 표시될 때까지 복합 변환을 확장합니다. 해당 하위 변환을 선택하여 부차 입력 측정항목을 확인합니다.
부차 입력을 만드는 변환
변환이 부차 입력 컬렉션을 만드는 경우 부차 입력 측정항목 섹션에는 다음 측정항목과 함께 컬렉션 이름이 표시됩니다.
- 작성 소요 시간: 부차 입력 컬렉션을 작성하는 데 소요된 시간입니다.
- 작성한 바이트: 부차 입력 컬렉션에 작성한 총 바이트 수입니다.
- 부차 입력의 읽기 소요 시간 및 바이트: 부차 입력 컬렉션을 소비하는 모든 변환(부차 입력 소비자라고도 함)에 대한 추가 측정항목이 포함되어 있는 테이블입니다.
부차 입력의 읽기 소요 시간 및 바이트 테이블에는 다음과 같은 각 부차 입력 소비자에 대한 정보가 포함됩니다.
- 부차 입력 소비자: 부차 입력 소비자의 변환 이름입니다.
- 읽기 소요 시간: 이 소비자가 부차 입력 컬렉션 읽기에 소요한 시간입니다.
- 읽은 바이트: 이 소비자가 부차 입력 컬렉션에서 읽은 바이트 수입니다.
다음 이미지는 부차 입력 컬렉션을 만드는 변환의 부차 입력 측정항목을 보여줍니다.
작업 그래프에 확장된 복합 변환 (MakeMapView
)이 있습니다. 부차 입력을 만드는 하위 변환 (CreateDataflowView
)이 선택되었고 부차 입력 측정항목이 단계 정보 패널에 표시됩니다.
부차 입력을 소비하는 변환
변환이 부차 입력을 하나 이상 소비하는 경우 부차 입력 측정항목 섹션에 부차 입력의 읽기 소요 시간 및 바이트 테이블이 표시됩니다. 이 테이블에는 다음과 같은 각 부차 입력 컬렉션에 대한 정보가 포함됩니다.
- 부차 입력 컬렉션: 부차 입력 컬렉션 이름입니다.
- 읽기 소요 시간: 변환이 이 부차 입력 컬렉션을 읽는 데 소요한 시간입니다.
- 읽은 바이트: 변환이 이 부차 입력 컬렉션에서 읽은 바이트 수입니다.
다음 이미지는 부차 입력 컬렉션에서 읽는 변환의 부차 입력 측정항목을 보여줍니다.
JoinBothCollections
변환은 부차 입력 컬렉션에서 읽어옵니다.
작업 그래프에서 JoinBothCollections
가 선택되고 부차 입력 측정항목이 단계 정보 패널에 표시됩니다.
부차 입력 성능 문제 식별
부차 입력은 파이프라인의 성능에 영향을 줄 수 있습니다. 파이프라인이 부차 입력을 사용하는 경우 Dataflow는 컬렉션을 영구 레이어(예: 디스크)에 쓰고 변환은 이 영구 컬렉션에서 읽습니다. 이러한 읽기와 쓰기는 작업 실행 시간에 영향을 미칩니다.
반복은 일반적인 부차 입력 성능 문제입니다. 부차 입력 PCollection
이 너무 크면 작업자가 전체 컬렉션을 메모리에 캐시할 수 없습니다.
그 결과 작업자는 영구 부차 입력 컬렉션에서 반복적으로 읽어야 합니다.
다음 이미지에서 부차 입력 측정항목은 부차 입력 컬렉션에서 읽은 총 바이트 수가 컬렉션 크기(작성된 총 바이트 수)보다 훨씬 큼을 보여줍니다. 부차 입력 컬렉션은 563MB이고 변환을 소비하여 읽은 바이트의 합계는 거의 12GB입니다.
이 파이프라인의 성능을 개선하려면 부차 입력 데이터의 반복이나 다시 가져오는 것을 방지하도록 알고리즘을 다시 설계합니다. 이 예시에서 파이프라인은 컬렉션 2개의 카티전 프로덕트을 만듭니다. 이 알고리즘은 기본 컬렉션의 각 요소에 대한 전체 부차 입력 컬렉션을 반복합니다. 기본 컬렉션의 여러 요소를 함께 일괄 처리하여 파이프라인의 액세스 패턴을 개선할 수 있습니다. 이 변경으로 작업자가 부차 입력 컬렉션을 다시 읽어야 하는 횟수가 줄어듭니다.
파이프라인이 큰 부차 입력이 하나 이상 있는 ParDo
를 적용하여 조인을 수행하면 다른 일반적인 성능 문제가 발생할 수 있습니다. 이 경우 작업자는 부차 입력 컬렉션에서 읽는 데 조인 작업의 처리 시간 대부분을 소비할 수 있습니다.
다음 이미지는 이 문제의 부차 입력 측정항목을 보여줍니다.
JoinBothCollections
변환의 총 처리 시간은 18분을 초과합니다. 작업자는 10GB 부차 입력 컬렉션에서 읽는 데 처리 시간 대부분 (10분)을 소비합니다. 이 파이프라인의 성능을 개선하려면 부차 입력 대신 CoGroupByKey
를 사용하세요.