Amazon Elasticsearch Service에서 429 오류 "es_rejected_execution_exception"을 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 10월 16일

Amazon Elasticsearch Service(Amazon ES) 클러스터에 데이터를 기록할 때 요청이 거부됩니다. 다음과 같은 ThreadpoolBulkRejected 오류 메시지가 나타납니다.

error":"elastic: Error 429 (Too Many Requests): rejected execution of org.elasticsearch.transport.TransportService$7@b25fff4 on 
EsThreadPoolExecutor[bulk, queue capacity = 200, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@768d4a66[Running, 
pool size = 2, active threads = 2, queued tasks = 200, completed tasks = 820898]] [type=es_rejected_execution_exception]"

중요: Amazon ES의 버전에 따라 _index API에 대한 호출을 처리할 때 사용되는 스레드 풀이 다릅니다. Elasticsearch 버전 1.5 및 2.3은 인덱스 스레드 풀을 사용합니다. Elasticsearch 버전 5.x, 6.0 및 6.2는 대량 스레드 풀을 사용합니다. Elasticsearch 버전 6.3 이상은 쓰기 스레드 풀을 사용합니다.

간략한 설명

es_rejected_execution_exception[bulk]은 대량 대기열 오류입니다. Elasticsearch 클러스터에 대한 요청 수가 대량 대기열 크기(threadpool.bulk.queue_size)를 초과하는 경우 이 오류가 발생합니다. 각 노드의 대량 대기열은 사용하는 Elasticsearch 버전에 따라, 50 - 200개의 요청을 보유할 수 있습니다. 대기열이 꽉 찬 경우 추가 요청이 거부됩니다.

es_rejected_execution_exception[write]ThreadpoolWriteQueue 오류입니다. s_rejected_execution_exception[write]는 Elasticsearch 클러스터에 대한 요청 수가 threadpool.write.queue_size, _index 대기열 크기를 초과할 때 발생합니다. 각 노드의 ThreadpoolWriteQueue는 사용하는 Elasticsearch 버전에 따라, 50~200개의 요청을 보유할 수 있습니다. 대기열이 꽉 찬 경우 추가 요청이 거부됩니다.

해결 방법

참고: 대부분의 Amazon ES 버전에서는 대량 대기열 크기를 늘릴 수 없습니다. 대기열은 관리 가능한 양으로 요청을 제한합니다. Elasticsearch 설명서에 대한 자세한 정보는 쓰레드 풀 섹션을 참조하십시오.

다음 방법 중 하나를 사용하여 es_rejected_execution_exception 오류를 해결합니다.

  • 노드 추가: 각 노드에는 대량의 쓰기 대기열이 있으므로 노드를 더 추가하면 대기열 용량이 늘어납니다. 노드를 추가하려면 Amazon ES 도메인 구성을 참조하십시오.
    참고: 새 노드에 배포하기에 충분한 활성 인덱싱 샤드가 있는지 확인하십시오. 그렇지 않으면 노드를 추가해도 대기열 용량이 향상되지 않습니다. "활성 인덱싱 샤드"란, 지난 5분 이내에 하나 이상의 인덱싱 요청을 수신한 샤드를 말합니다.
  • 큰 인스턴스 유형으로 전환: 쓰기 요청에 대한 각 노드의 스레드 풀에 있는 스레드 수는 사용 가능한 프로세서 수와 같습니다. _index 요청을 처리하기 위해 많은 스레드를 얻으려면 더 많은 가상 CPU가 있는 인스턴스로 전환하십시오. 자세한 내용은 인스턴스 유형 선택 및 테스트를 참조하십시오.
  • 인덱싱 성능 향상: 문서가 더 빨리 인덱싱되면 쓰기 대기열이 용량에 도달할 가능성이 적습니다. 성능 튜닝에 대한 자세한 내용은 Elasticsearch 클러스터에서 인덱싱 성능을 개선하려면 어떻게 해야 합니까?를 참조하십시오.

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?