Comment améliorer la vitesse de recherche d'une requête dans Elastic Search?

Aug 16 2020

L'hôte est AWS d'ElasticSearch, j'ai 2 To de données stockées dans 6 nœuds et dans 30 index avec 10 fragments chacun. Une simple recherche dans tous les index est très très lente et prend quelques minutes.

Où j'ai fait l'erreur? Est-ce normal ou j'ai de mauvais paramètres ou peut-être ai-je trop de données stockées?

Mes paramètres de cluster:

"search": {
     "max_queue_size": "1000",
     "queue_size": "1000",
     "size": "4",
     "auto_queue_frame_size": "2000",
     "target_response_time": "1s",
     "min_queue_size": "1000"
},

Paramètres de mes nœuds:

"os": {
     "refresh_interval_in_millis": 1000,
     "name": "Linux",
     "pretty_name": "CentOS Linux 7 (Core)",
     "arch": "amd64",
     "version": "4.15.0-1039-aws",
     "available_processors": 32,
     "allocated_processors": 2
}

Je vous remercie!

Réponses

3 ElasticsearchNinja Aug 16 2020 at 14:17

C'est une question très large avec très moins d'informations, pouvez-vous s'il vous plaît fournir plus d'informations comme:

  1. La quantité de données dont vous disposez et la taille de chaque partition.
  2. Exemples de requêtes de recherche avec leur durée moyenne.
  3. taille du tas de nœuds de données et pourquoi vous avez allocated_processorstrès moins (2) que les processeurs disponibles (32)
  4. Le nombre de documents que vous récupérez dans votre requête de recherche, c'est-à-dire le paramètre de taille.
  5. Latence de recherche par rapport au nombre d'appels de recherche
  6. Rechercher les journaux lents d'elasticsearch (ES)

Vous pouvez vous référer à mes 10 conseils pour améliorer les performances de recherche , et également me dire les valeurs de certains paramètres mentionnés dans les conseils, vous pouvez également essayer l' outil d'optimisation de cluster pour affiner les paramètres de cluster et de nœuds d'ES.

Comme indiqué dans le commentaire, veuillez vous référer au blog de recherche lente d'opster pour un problème de débogage plus efficace.

1 Jaycreation Aug 19 2020 at 11:20
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica

C'est trop. La taille de l'objectif pour un fragment doit être d'environ 50 Go. Avec votre réglage, vous êtes plus autour de 5 Go chacun. Vous pouvez réduire à 5 fragments ou moins et forcer la fusion à 1 segment. Les performances devraient être beaucoup améliorées.

Après cela, regardez d'autres bons conseils fournis par Optsters dans son blog. Ils sont tous pertinents.