Mise à l'échelle d'Elasticsearch et configuration matérielle requise
Vous pouvez obtenir une capacité supplémentaire en implémentant ou en étendant la mise en cluster de pods sur Elasticsearch, NiFi, ou les deux. Vous pouvez également prendre en compte l'encombrement matériel et les ressources clés qui ont un impact sur la vitesse de traitement et de création d'index.
Mise en cluster
- Elasticsearch
- Elasticsearch est installé par défaut en tant que cluster à trois partitionnements. Les tailles minimales et recommandées implémentent une telle mise en cluster, et les seules différences sont les ressources allouées. La taille recommandée dispose de plus de vCPU et de mémoire par pod, ce qui est suffisant pour piloter le trafic et générer l'index.
Si nécessaire, une capacité supplémentaire peut être ajoutée en augmentant horizontalement la taille du cluster avec des nœuds/pods supplémentaires pour Elasticsearch. Il est toutefois recommandé d'optimiser les performances de votre infrastructure avec un stockage plus rapide, une interconnexion réseau plus rapide, une mémoire et une UC plus rapides, ainsi qu'une allocation de mémoire et de UC supplémentaire, avant la mise à l'échelle horizontale.
- NiFi
- NiFi est configuré en tant que serveur unique, dans les configurations minimales et recommandées. Pour les charges de travail attendues standard, cela suffit. Toutefois, si le traitement du langage naturel (NLP) présente un goulot d'étranglement, la mise en cluster horizontale NiFi améliore le débit NLP, avec une mise à l'échelle linéaire.
Partitionnement
- Un fragment d'index ne doit pas dépasser 40 % du stockage total disponible de son cluster de nœuds.
- Une taille de fragment d'index ne doit pas dépasser 50 Go. Généralement, l'index fonctionne mieux lorsque sa taille est inférieure à 25 Go par fragment.
- Le nombre et la taille des documents entre les fragments doivent être similaires.
Encombrement matériel
Il existe plusieurs facteurs dans la prise en compte de l'encombrement matériel et des ressources clés qui ont un impact sur le traitement et la vitesse de création d'index.
- Ressources influençant les opérations
- L'installation par défaut du cluster d'e-commerce NiFi et Elasticsearch suppose un pod NiFi, associé à 3 pods en cluster avec Elasticsearch. Les ressources clés sont les UC, les tailles de la mémoire RAM/segment de mémoire et le sous-système d'E/S.
Les ressources d'UC minimum recommandées pour chaque pod sont définies sur 6 vCPU par pod. Cela est considéré comme des performances acceptables lors de la génération de catalogues de taille moyenne (en supposant 300 000 articles). Toutefois, chaque catalogue est différent et les catalogues qui disposent d'un dictionnaire d'attributs trop important peuvent nécessiter des ressources supplémentaires pour suivre la demande de traitement accrue.
En général, le traitement NiFi s'adaptera à la taille des ressources d'UC allouées, sauf dans le cas du traitement NLP. En général, le traitement NLP n'est pas lié à l'UC. Avant d'augmenter les ressources d'UC allouées (pour augmenter la vitesse de traitement NLP), il est recommandé de tester à nouveau la génération d'index avec le matériel existant. Lors d'une deuxième génération d'index, NLP utilise à nouveau une partie du calcul de l'étape initiale, réduisant ainsi considérablement le temps de traitement global. Utilisez ces générations répétées pour dériver les besoins en ressources accrus.
Plus important encore, les tailles de segment de mémoire doivent être ajustées pour s'adapter à la taille et à la complexité des données indexées. Le processus NiFi et Elasticsearch est rationalisé et, tant que la configuration reste la même, le segment de mémoire doit être suffisant pour n'importe quelle taille du catalogue.
Toutefois, un ajustement sera nécessaire si une optimisation supplémentaire est tentée sur des catalogues plus volumineux (fichiers de flux plus volumineux, plus de threads, etc.) ou si le fichier produit lui-même devient plus volumineux (en raison d'un plus grand nombre d'attributs, par exemple).
Dans les cas minimaux et recommandés fournis, il existe deux configurations de segment de mémoire, ciblant le catalogue de 300 000 et 1 million d'articles susmentionné. Les paramètres d'optimisation sont différents entre ces configurations, car un catalogue d'un million d'articles requiert des tailles de segment de mémoire plus importantes dans NiFi et Elasticsearch (12 Go et 16 Go en conséquence).
La ressource la plus influente pour le fonctionnement global du couplage NiFi et Elasticsearch est le sous-système d'E/S Elasticsearch, qui est généralement à la base de la vitesse globale du traitement. Si Elasticsearch stocke les données indexées sur le disque lentement, il ralentit également le processus de génération global, y compris la vitesse d'exécution NiFi. Par conséquent, le système d'E/S de fichiers sur Elasticsearch doit être considéré au plus tôt et idéalement configuré sur le stockage SSD/NVMe local pour un débit et des vitesses d'E/S maximum.
- Encombrement matériel minimal et recommandé défini
- Vous avez deux paramètres de déploiement de configuration principaux. Le premier concerne la configuration du déploiement par défaut, également appelée configuration minimale pour NiFi et Elasticsearch, et le second, appelé configuration recommandée, qui a affiché de bons résultats avec des catalogues plus volumineux avec environ un million d'articles.Le tableau suivant présente les valeurs de ressource pour l'encombrement matériel minimal et recommandé :
Pods Pod vCPUs/ES Pod vCPU/NiFi Segment de mémoire ES Segment de mémoire NiFi Configuration minimale (par défaut) 3 - ES
1- NiFi
6 6 12 9 Configuration recommandée 3 - ES
1- NiFi
16 16 16 12