high_disk_watermark_exceeded: high disk watermark [90%] exceeded / flood stage disk watermark [95%] exceeded
Elasticsearch의미
노드의 디스크 사용량이 high watermark(기본 90%) 또는 flood stage(기본 95%) 임계값을 초과했다. high watermark를 초과하면 Elasticsearch는 해당 노드의 샤드를 다른 노드로 옮기려 하고, flood stage를 초과하면 인덱스를 읽기 전용으로 만든다.
원인
디스크가 차고 있음: 계속 증가하는 로그/메트릭 인덱스, 삭제되지 않는 오래된 인덱스, 정리되지 않은 스냅샷 저장소, 너무 작은 디스크, 또는 불균형한 샤드 분산으로 단일 노드가 과도하게 참.
해결 방법
디스크 사용량을 확인한다: GET _cat/allocation?v. 오래된 인덱스를 삭제하거나 스냅샷 후 제거하고 디스크를 확장한다. 임계값을 일시적으로 높일 수 있다(신중하게. 8.x에서는 max_headroom 검증 때문에 세 값을 함께 설정한다): PUT _cluster/settings {"persistent":{"cluster.routing.allocation.disk.watermark.low":"88%","cluster.routing.allocation.disk.watermark.high":"93%","cluster.routing.allocation.disk.watermark.flood_stage":"96%"}}. 해결되면 같은 설정을 null로 지정해 기본값으로 되돌린다(transient 설정은 deprecated이므로 사용하지 않는다). 영구 해결책: ILM을 이용한 수명 주기 관리, 정기적인 인덱스 정리와 용량 계획. flood stage로 인덱스가 읽기 전용이 되었다면 블록을 별도로 제거한다.
같은 데이터베이스의 다른 항목
- cluster_block_exceptionClusterBlockException[blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block]] (7.x 이전: FORBIDDEN/12/index read-only / allow delete (api))
- index_read_only_allow_deleteTOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block (legacy: FORBIDDEN/12/index read-only / allow delete (api))
- circuit_breaking_exceptionCircuitBreakingException[[parent] Data too large, data for [<...>] would be [...], which is larger than the limit of [...]]
- mapper_parsing_exceptionmapper_parsing_exception: failed to parse field [...] of type [...]
- strict_dynamic_mapping_exceptionstrict_dynamic_mapping_exception: mapping set to strict, dynamic introduction of [...] within [...] is not allowed
- illegal_argument_exception_fielddataillegal_argument_exception: Fielddata is disabled on text fields by default. Set fielddata=true on [your_field] in order to load fielddata in memory