2017-03-01 1 views
0

Y aura-t-il des problèmes si je dépriorise la commande Cassandra "nodetool repair" en utilisant "nice"? Cela provoque une charge élevée de "temps utilisateur" du processeur et a un impact négatif sur nos systèmes de production, provoquant des délais d'expiration de l'API sur notre implémentation Usergrid. Je vois de la documentation sur la limitation du débit réseau, mais iowait ne semble pas être le problème. De plus, existe-t-il de bonnes méthodes pour atténuer ce problème?Puis-je "gentil" Cassandra réparation de nodetool

Répondre

1

La commande nodetool ne fait aucun travail. Il appelle simplement une opération JMX en C * pour lancer la réparation, puis écoute les mises à jour à imprimer. Bien faire ne fera aucune différence. Il y a quelques phases principales à la réparation

  1. construire des arbres de Merkle (sur chaque nœud)
  2. flux change
  3. tassements

Peut-être le compactage de validation (sur certaines versions peuvent être contrôlé avec accélération de compactage) ou les flux (peuvent définir le débit de flux via nodetool ou cassandra.yaml) brûlent votre CPU. Si oui, essayez d'utiliser les manettes, mais dans certaines versions, cela ne fera pas la différence. Après la réparation, il y a des compactages normaux qui démarrent pour l'anti-compactage dans les réparations incrémentales, et aussi pour les réparations complètes s'il y a beaucoup de différences. Certains problèmes sont très spécifiques à la version, alors faites attention aux logs et quand le CPU est haut pour aller plus loin.