J'ai une réplication MySQL Dual-Master de MySQL, chacun des serveurs contient 21 Go de mémoire, je recherche maintenant une solution de clustering pour ce projet, il est possible d'avoir 6 serveur: deux d'entre eux avec 20 Go de =RAM et d'autres avec 10 Go de RAM. Dans la documentation du cluster MySQL, elle a écrit ci-dessous une formule pour la mémoire totale et chaque nœud RAM, il semble que j'ai besoin de beaucoup plus RAM de ma réplication existante, et il est difficile de rendre ma compagnie d'accord avec ce type de RAM Exigence, outre le but de la clustering, c'est au lieu de faire utiliser un grand serveur plus petit (dans les ressources ) Serveurs attachés les uns aux autres mais avec cette formule, chaque noeud de clustering est beaucoup plus grand que mes serveurs existants.
Si vous concevez une base de données complètement nouvelle, les calculs suivants peuvent être utilisés pour déterminer les exigences de dimensionnement de la mémoire approximatives pour les nœuds de données:
• (en mémoire) Taille de données * Replicas * 1.25 = Total de la base de données Exigences de la mémoire Exemple Exemple: 50 Go * 2 * 1.25 = 125 Go
• (taille de données * réplicas * 1.25)/nœuds = RAM Per Node Exemple: (2 Go * 2 * 1.25)/4 = 31,25 Go
Dans cette situation, j'ai quelques questions:
Lors de l'évaluation des solutions en cluster, vous devez réfléchir au profil de lecture/écriture de votre application et de correspondre à des solutions disponibles.
Pour un profil basé sur une application lourde d'une application, vous seriez capable d'augmenter les lectures en utilisant plusieurs répliques MySQL éteint de votre configuration de réplication MySQL Master-Master-Master.
Pour écrire un profil lourd, vous mettez en œuvre certains des choix évidents de la réplication principale-maître.
Lorsque vous choisissez entre des options de MySQL en cluster, il existe deux options technologiques: Oracle MySQL Cluster et Galera à partir de PerCona (Cluster Xtradb) et Mariadb (Cluster Mariadb) et Galera Cluster pour MySQL. Ils sont architecturés différemment et ont des avantages et des inconvénients différents.
Un bon webinaire sur la distinction est ici:
La formule mentionnée est principalement utilisée pour mesurer les exigences projetées par nœud pour un cluster NDB. Cluster MySQL à l'origine, le groupe précédemment NDB était une base de données de mémoire uniquement, qui nécessitait toutes les données à résident dans la mémoire des nœuds disponibles. Si toutes vos données étaient nécessaires pour rester en mémoire, alors si vous n'avez pas assez RAM Pour contenir toutes vos données, vous êtes prévu en termes de matériel.
De nos jours, chaque nœud du cluster MySQL, à savoir un nœud de données, est une instance MySQL. Même si vous devez conserver vos données en mémoire pour une performance optimale, elle n'est pas nécessaire. Donc, essentiellement si vous ne "obéirez pas" les formules, vous finirez par tomber sur le disque et devront faire face à tout le fichier IO Performance du matériel particulier disponible pour vos nœuds.