Nous avons un cluster ElasticSearch avec 9 noeuds avec les paramètres suivants:Déséquilibre ElasticSearch Performance
- ElasticSearch Version 5.1.2
- Un index dans Cluster
- primaire Shard Stockage Taille: 3Go
- Nombre Nombre de fragments: 5
- Nombre de répliques: 3
- Noeuds maîtres 1, Noeud 2 et Noeud 3 uniquement
- Noeud-4 à nœud-9 données Seuls les nœuds
- Aucun parent Relation enfant dans Mappages
- Chaque noeud 24 Go de RAM, 18 Cores de CPU
- Désactivé Swaped, augmentation de descripteur de fichier ouvert, 12 Go JVM Heap mémoire
- Nest client adaptateur « statique » et la liste de toutes les adresses IP nœuds
Comme vous le voyez, nous avons une sur l'allocation des ressources sur nos nœuds, mais sous stress test un seul nœud utilise tout ce qu'il est fils de recherche disponibles. Comme je l'ai mentionné, nous avons 18 cœurs et selon la limite de fil de recherche par défaut, nous avons (3 * 18/2) +1 = 28 threads de recherche dans chaque nœud.
Problèmes:
- Http Les demandes ne sont pas équilibrés
- D'autres nœuds n'utilisent pas tous leurs sujets de recherche. Un des noeuds utilise Il est toutes les discussions et il est la file d'attente de recherche devient grand
Ce que nous avons testé:
- Utilisez un noeud coordinateur pour équilibrer les demandes (pas de changement)
Comment nous envoyer des demandes:
- Nous utilisons Elasticsearch comme un moteur de recherche et un Jmeter
est utilisé pour mettre le test de stress sur les services de recherche. Services de test sont des services web qui en appellent à l'aide SearchTemplates Elasticsearch Nest Client
Toute idée est appréciée.
Merci Reza. Mais comme je l'ai mentionné dans ma question, nous utilisons «l'adaptateur statique et la liste de tous les IP de nœuds» de Nest Client. –