이 페이지에서는 Dataflow 일괄 작업이 느려지거나 중단되는 일반적인 원인을 해결하는 방법을 설명합니다.
일괄 작업이 느리거나 중단된 경우 실행 세부정보 탭을 사용하여 작업에 대한 자세한 정보를 확인하고 병목 현상을 일으키는 단계나 작업자를 식별합니다.
근본 원인 파악
작업자 시작 중에 작업에 문제가 발생하는지 확인합니다. 자세한 내용은 포드 동기화 중 오류를 참조하세요.
작업이 데이터 처리를 시작했는지 확인하려면 job-message 로그에서 다음 로그 항목을 찾습니다.
All workers have finished the startup processes and began to receive work requests
여러 작업 간의 작업 성능을 비교하려면 입력 데이터의 양, 작업자 구성, 자동 확장 동작, Dataflow Shuffle 설정이 동일한지 확인합니다.
job-message 로그에서 할당량 한도, 재고 부족 문제, IP 주소 소진과 같은 문제가 있는지 확인합니다.
작업에서 누락 항목을 찾습니다. 자세한 내용은 일괄 작업의 누락 항목 문제 해결을 참조하세요.
처리량, CPU, 메모리 사용률 측정항목을 확인합니다.
작업자 로그에서 경고와 오류를 확인합니다.
- 작업자 로그에 오류가 포함된 경우 스택 트레이스를 봅니다. 코드의 버그로 인해 오류가 발생하는지 조사합니다.
- Dataflow 오류를 찾습니다. Dataflow 오류 문제 해결을 참조하세요.
- 파이프라인이 중단될 수 있는 메모리 부족 오류를 찾습니다. 메모리 부족 오류가 표시되면 Dataflow의 메모리 부족 오류 문제 해결의 단계를 수행합니다.
- 느리거나 중단된 단계를 식별하려면 작업자 로그에서
Operation ongoing
메시지를 확인합니다. 스택 트레이스를 확인하여 단계에서 시간이 소요되는 위치를 확인합니다. 자세한 내용은 처리 중단 또는 작업 진행 중을 참조하세요.
Dataflow Shuffle을 사용하지 않는 경우 셔플 작업 중에 셔플러 로그에서 경고와 오류를 확인합니다. 포트 12345 또는 12346에서 RPC 제한 시간 오류가 표시되면 작업에 방화벽 규칙이 누락되었을 수 있습니다. Dataflow 방화벽 규칙을 참조하세요.
Runner v2가 사용 설정된 경우 harness 로그에서 오류를 확인합니다. 자세한 내용은 Runner v2 문제 해결을 참조하세요.
낙오 항목 식별
낙오 항목은 단계의 다른 작업 항목에 비해 속도가 느린 작업 항목입니다. 낙오 항목을 식별하고 수정하는 방법에 대한 자세한 내용은 일괄 작업의 낙오 항목 문제 해결을 참조하세요.
느리거나 중단된 단계 식별
느리거나 중단된 단계를 식별하려면 단계 진행 뷰를 사용합니다. 막대가 길수록 단계에서 시간이 오래 걸린다는 의미입니다. 이 뷰를 사용하여 파이프라인에서 가장 느린 단계를 식별합니다.
병목 현상 단계를 찾으면 다음 단계를 수행할 수 있습니다.
- 해당 단계에서 느린 작업자를 식별합니다.
- 느린 작업자가 없으면 단계 정보 패널을 사용하여 가장 느린 단계를 식별합니다. 이 정보를 사용하여 사용자 코드 최적화를 위한 조합을 식별합니다.
- 동시 로드 병목 현상을 찾으려면 Dataflow 모니터링 측정항목을 사용합니다.
느린 작업자 식별
특정 단계에서 느린 작업자를 식별하려면 작업자 진행 상황 뷰를 사용합니다. 이 뷰는 단계가 끝날 때까지 모든 작업자가 작업을 처리하는지 또는 단일 작업자가 느린 태스크에서 중단되었는지 여부를 보여줍니다. 느린 작업자를 찾으면 다음 단계를 수행합니다.
- 해당 작업자의 로그 파일을 봅니다. 자세한 내용은 파이프라인 로그 모니터링 및 보기를 참조하세요.
- 느린 작업자의 CPU 사용률 측정항목 및 작업자 진행 상황 세부정보를 봅니다. 해당 작업자의 로그 파일에서 CPU 사용률이 비정상적으로 높거나 낮은 경우 다음 문제를 확인합니다.
디버깅 도구
파이프라인이 느리거나 중단되면 다음 도구를 사용하여 문제를 진단할 수 있습니다.
- 이슈의 상관관계를 찾고 병목 현상을 식별하려면 Dataflow용 Cloud Monitoring을 사용합니다.
- 파이프라인 성능을 모니터링하려면 Cloud Profiler를 사용합니다.
- 일부 변환은 대용량 파이프라인에 더 적합합니다. 로그 메시지는 일괄 또는 스트리밍 파이프라인에서 중단된 사용자 변환을 식별할 수 있습니다.
- 중단된 작업을 자세히 알아보려면 Dataflow 작업 측정항목을 사용합니다.
다음 목록에는 유용한 측정항목이 포함되어 있습니다.
- 백로그 바이트 측정항목(
backlog_bytes
)은 처리되지 않은 입력 양을 단계별로 측정합니다(바이트 단위). 이 측정항목을 사용하여 처리량이 없는 통합 단계를 찾습니다. 마찬가지로 백로그 요소 측정항목(backlog_elements
)은 한 단계에서 처리되지 않은 입력 요소 수를 측정합니다. - 동시 로드 키 처리(
processing_parallelism_keys
) 측정항목은 지난 5분 동안 파이프라인의 특정 단계에 대한 동시 로드 처리 키 수를 측정합니다. 이 측정항목을 사용하여 다음 방법으로 조사합니다.- 문제 범위를 특정 단계로 좁히고 핫 키 경고(예:
A hot key ... was detected
)를 확인합니다. - 동시 로드 부족으로 인한 처리량 병목 현상을 찾습니다. 이러한 병목 현상으로 인해 파이프라인이 느려지거나 중단될 수 있습니다.
- 문제 범위를 특정 단계로 좁히고 핫 키 경고(예:
- 시스템 지연 측정항목(
system_lag
)과 단계별 시스템 지연 측정항목(per_stage_system_lag
)은 데이터 항목이 처리 중이거나 처리 대기 중인 최대 시간을 측정합니다. 이러한 측정항목을 사용하여 데이터 소스에서 비효율적인 단계와 병목 현상을 식별합니다.
- 백로그 바이트 측정항목(
Dataflow 모니터링 웹 인터페이스에 포함되지 않은 추가 측정항목은 Google Cloud Platform 측정항목의 전체 Dataflow 측정항목 목록을 참고하세요.