receive_timeout_transport_exception: Request timed out waiting for a response from another node (다른 노드의 응답 대기 중 요청 타임아웃)
Elasticsearch의미
노드가 다른 노드에 요청을 보냈지만 구성된 시간 내에 응답이 오지 않아 요청이 타임아웃되었다. 노드 간(transport) 호출을 완료할 수 없었다.
원인
대상 노드의 높은 부하, 긴 GC pause, 느린 디스크/CPU 압박, 네트워크 지연/패킷 손실, 또는 대상 노드가 너무 바빠 응답할 수 없는 경우다. 무거운 쿼리, 대규모 bulk 작업, 샤드 리밸런싱 중에 흔하다.
해결 방법
영향을 받은 노드의 리소스 사용량을 확인한다: GET _nodes/stats로 JVM heap, GC, thread pool 포화를 확인한다. GET _cat/thread_pool?v로 거부/대기 중인 작업을 확인한다. 네트워크 지연을 측정한다. 부하를 줄이고(더 작은 쿼리/bulk 크기) heap과 하드웨어 리소스를 검토한다. 지속되면 노드를 추가해 부하를 분산한다.
같은 데이터베이스의 다른 항목
- not_x_content_exceptionCompressor detection error / body is not valid content (압축 감지 오류 / 본문이 유효한 콘텐츠가 아님)
- document_source_missing_exceptionDocument source is missing
- node_not_connected_exceptionNode is not connected
- routing_missing_exceptionRouting value is required for this document (이 문서에는 routing 값이 필요)
- too_many_buckets_exceptionTrying to create too many buckets
- shard_lock_obtain_failed_exceptionObtaining shard lock timed out
- parsing_exceptionFailed to parse the search request / query DSL (검색 요청 / query DSL 파싱 실패)