web-dev-qa-db-fra.com

Recherche élastique AWS. INTERDIT / 8 / écriture d'index (api). Impossible d'écrire dans l'index

J'essaie de vider une liste de documents vers une instance de recherche élastique AWS. Ça fonctionnait bien. Puis, tout d'un coup, il a commencé à lancer cette erreur:

{ _index: '<my index name>',
  _type: 'type',
  _id: 'record id',
  status: 403,
  error: 
   { type: 'cluster_block_exception',
     reason: 'blocked by: [FORBIDDEN/8/index write (api)];' } }

J'ai vérifié dans les forums. La plupart d'entre eux disent que c'est un problème de mémoire JVM. S'il dépasse 92%, AWS arrêtera toutes les écritures sur le cluster/index. Cependant, lorsque j'ai vérifié la mémoire JVM, elle affiche moins de 92%. Il me manque quelque chose ici?

Merci.

25
paachi

Cette erreur est le service Amazon ES bloquant activement les écritures pour protéger le cluster d'atteindre le statut rouge ou jaune. Pour ce faire, il utilise index.blocks.write .

Les deux raisons étant:

Mémoire faible

Lorsque la métrique JVMMemoryPressure dépasse 92% pendant 30 minutes, Amazon ES déclenche un mécanisme de protection et bloque toutes les opérations d'écriture pour empêcher le cluster d'atteindre le statut rouge. Lorsque la protection est activée, les opérations d'écriture échouent avec une erreur ClusterBlockException, de nouveaux index ne peuvent pas être créés et l'erreur IndexCreateBlockException est levée.

Lorsque la métrique JVMMemoryPressure revient à 88% ou moins pendant cinq minutes, la protection est désactivée et les opérations d'écriture dans le cluster sont débloquées.

Espace disque faible

Elasticsearch a un "filigrane bas" par défaut de 85%, ce qui signifie qu'une fois que l'utilisation du disque dépasse 85%, Elasticsearch n'alloue plus de fragments à ce nœud. Elasticsearch a également un "filigrane élevé" par défaut de 90%, auquel cas il tente de déplacer les fragments vers d'autres nœuds.

46
gondalez

Cette erreur indique qu'AWS ElasticSearch a placé un bloc sur votre domaine en fonction de l'espace disque. À 85%, ES ne vous permettra pas de créer de nouveaux index. À 90%, aucun nouveau document ne peut être écrit.

8
ckarabulut