2010-09-12 6 views
1

J'ai un cluster de 22 machines avec un montage NFS commun. Sur chaque machine, je suis capable de démarrer une nouvelle instance MySQL. J'ai fini de créer une table avec environ 71 millions d'entrées et j'ai commencé une opération ADD INDEX. Cela fait plus de 12 heures et l'opération continue. Alors, que je me suis connecté sur l'un de mes autres machines du cluster, a commencé une nouvelle instance sur le démon MySQL sur cette machine en utilisant:Utiliser la puissance des clusters dans le contexte des bases de données?

mysqld_safe --user=username 

Et puis créé un client MySQL sur la même machine pour se connecter à la base de données. Le problème est, j'utilise la déclaration exacte que je l'habitude de démarrer le client sur la première machine:

mysql --socket=/homes/username/mysql/mysql/tmp/mysql.sock -u root -p 

Je suis en mesure de voir toutes les bases de données et tableaux de ce client comme prévu (en raison du montage NFS sous-jacente). Maintenant, si je veux créer une nouvelle table ou de modifier une table (autre que celui sur lequel l'indice est actuellement ajouté), j'ai deux questions:

  1. Est-ce même la manière correcte de utilisant un grappe? Ou plutôt, en supposant que j'ai une tâche d'exploration de données considérable en face de moi, comment puis-je configurer MySQL (sans les privilèges root sur le cluster) pour accélérer la tâche?
  2. L'instruction que j'ai utilisée pour me connecter à mysql utilise le même fichier mysql.sock que la première machine. Quelles sont les conséquences de cela? Je veux dire, vais-je finir par faire face à des situations étranges?
  3. Aurai-je un gain de performance ou vais-je finir par ralentissant l'opération d'indexation qui se déroule sur une autre machine ?
+1

Voulez-vous dire que vous exécutez plusieurs instances mysql, pointant vers les mêmes fichiers de base de données sur le support NFS? – nos

+0

@nos: Pas encore à partir de maintenant, seulement 2. Je n'aurais jamais pensé que ça marcherait en pensant que MySQL lancerait une erreur mais ça m'a permis de créer une instance. – Legend

+0

Avant de penser à la mise en cluster de serveurs de bases de données, avez-vous analysé le goulot d'étranglement? Êtes-vous à court de RAM? En panne de CPU ou est le problème de performance disque/réseau? –

Répondre

3

Cela ne fonctionnera pas de manière stable mysqld n'est pas fait pour cela. De plus, les frais généraux NFS ne sont pas favorables.

Vous devez probablement créer un tas d'instances mysqld esclaves et paralléliser votre accès client.

+0

Merci pour cela. J'avais peur que NFS soit une malédiction dans mon scénario. – Legend

Questions connexes