작업 지연 문제 해결

이 페이지에서는 Dataproc 작업 예약이 지연되는 일반적인 원인과 이를 방지하는 데 도움이 되는 정보가 나열되어 있습니다.

개요

다음은 Dataproc 작업이 지연(제한)되는 일반적인 이유입니다.

  • 실행 중인 작업이 너무 많음
  • 시스템 메모리 사용량이 높음
  • 사용 가능한 메모리 부족
  • 비율 제한 초과

일반적으로 작업 지연 메시지는 다음 형식으로 제공됩니다.

Awaiting execution [SCHEDULER_MESSAGE]"

다음 섹션에서는 특정 작업 지연 시나리오에 대한 가능한 원인과 해결 방법에 대해 다룹니다.

실행 중인 작업이 너무 많음

스케줄러 메시지:

Throttling job ### (and maybe others): Too many running jobs (current=xx max=xx)

원인:

마스터 VM 메모리를 기반으로 하는 최대 동시 작업 수를 초과했습니다(작업 드라이버는 Dataproc 클러스터 마스터 VM에서 실행됩니다). 기본적으로 Dataproc은 애플리케이션용으로 3.5GB의 메모리를 예약하고 GB당 작업 1개를 허용합니다.

예시: n1-standard-4 머신 유형에 15GB 메모리가 있습니다. 오버헤드용으로 3.5GB가 예약되면 11.5GB가 남습니다. 11GB로 동시에 작업할 수 있는 작업의 개수는 정수로 내림하면 최대 11개입니다.

해결책:

  1. CPU 사용량 및 메모리와 같은 로그 측정항목을 모니터링하여 작업 요구사항을 추정합니다.

  2. 작업 클러스터를 만들 때 다음과 같이 하세요.

    1. 클러스터 마스터 VM에 더 큰 메모리 머신 유형을 사용합니다.

    2. 작업당 1GB가 필요한 것보다 많은 경우 dataproc:dataproc.scheduler.driver-size-mb 클러스터 속성1024 미만으로 설정합니다.

    3. dataproc:dataproc.scheduler.max-concurrent-jobs 클러스터 속성을 작업 요구사항에 적합한 값으로 설정합니다.

시스템 메모리가 높거나 사용 가능한 메모리가 충분하지 않음

스케줄러 메시지:

Throttling job xxx_____JOBID_____xxx (and maybe others): High system memory usage (current=xx%)

Throttling job xxx_____JOBID_____xxx (and maybe others): Not enough free memory (current=xx min=xx)

원인:

기본적으로 Dataproc 에이전트는 메모리 사용량이 90%(0.9))에 도달하면 작업 제출을 제한합니다. 이 한도에 도달하면 새 작업을 예약할 수 없습니다.

클러스터에서 다른 작업을 예약하는 데 필요한 여유 메모리 양이 충분하지 않습니다.

솔루션:

  1. 클러스터를 만들 때 다음과 같이 하세요.

    1. dataproc:dataproc.scheduler.max-memory-used 클러스터 속성 값을 늘립니다. 예를 들어 0.90 이상의 기본값을 0.95로 설정하세요.
    2. dataproc.scheduler.min-free-memory.mb 클러스터 속성 값을 늘립니다. 기본값은 256MB입니다.

작업 비율 제한 초과

스케줄러 메시지:

Throttling job xxx__JOBID___xxx (and maybe others): Rate limit

원인:

Dataproc 에이전트가 작업 제출 속도 한도에 도달했습니다.

해결책:

  1. 기본적으로 Dataproc 에이전트 작업 제출은 1.0 QPS로 제한됩니다. 이 값은 dataproc:dataproc.scheduler.job-submission-rate 클러스터 속성을 사용하여 클러스터를 만들 때 다른 값으로 설정할 수 있습니다.

작업 상태 보기

작업 상태 및 세부정보를 보려면 작업 모니터링 및 디버깅을 참조하세요.