Comment choisir le nombre de fragments et de répliques Elasticsearch
Quelqu'un pourrait-il me dire comment puis-je choisir le nombre de fragments et de répliques pour l'index Elasticsearch?
J'ai configuré la taille de l'index à 20 Go mais je ne savais pas comment puis-je choisir le nombre ou les fragments et la réplique
NB: j'ai 5 nœuds , 3 nœuds maîtres (pour les données chaudes ), et 2 nœuds de données (un pour les données chaudes et la seconde pour les données froides )
Merci de votre aide
Elasticsearch utilise le concept du fragment pour subdiviser l'index en plusieurs parties et nous permet de faire une ou plusieurs copies de fragments d'index appelés répliques. Veuillez vous référer à cette réponse SO pour obtenir une compréhension détaillée des fragments et des répliques.
Pour définir le nombre de fragments et de répliques en tant que propriétés d'index:
PUT /indexName
{
"settings": {
"index": {
"number_of_shards": 6,
"number_of_replicas": 2
}
}
}
Si vous avez un index avec 3 fragments et que chacun a 2 répliques, cela signifie qu'il y a un total de 9 fragments, mais seulement 3 fragments sont en cours d'utilisation à ce moment-là. Si l'allocation de partition n'est pas effectuée de la bonne manière, cela peut entraîner des problèmes de performances dans le cluster.
Quelques conseils importants pour choisir le nombre de fragments et de répliques:
Le nombre de fragments ne peut pas être modifié après la création d'un index. Si, par la suite, vous estimez nécessaire de modifier le nombre de fragments, vous devrez réindexer à nouveau tous les documents.
Pour décider de l'absence de fragments, vous devrez choisir un point de départ, puis essayer de trouver la taille optimale en testant vos données et vos requêtes.
Les réplicas ont tendance à améliorer les performances de recherche (pas toujours). Mais, il est recommandé d'avoir au moins 1 réplique (afin que les données soient préservées en cas de panne matérielle)
Reportez-vous à cet article moyen , qui indique que le nombre de nœuds et le nombre de fragments (partition principale + répliques) doivent être proportionnels l'un à l'autre. Ceci est important pour Elasticsearch pour garantir un bon équilibrage de charge.
Comme indiqué dans cet article, il est recommandé de maintenir le nombre de partitions par nœud en dessous de 20 par segment de Go configuré.
Selon ce blog, lorsque vous planifiez la capacité, essayez d'allouer des fragments à un taux de 150% à 300% (soit environ le double) du nombre de nœuds que vous aviez lors de la configuration initiale de vos ensembles de données.
Reportez - vous à cet article et à cet article pour obtenir une explication détaillée des fragments et des répliques