2017-07-24 2 views
1

G1GC Je reçois a chuté en raison de la mutation GC.MY jeune génération GC prend beaucoup de tempsCassandra --JVM Tuning pour

G1 Jeune génération GC en 1804ms. G1 Eden Espace: 771751936 -> 0; G1 ancienne génération: 5351931920 -> 4995416072; G1 Survivor Space: 83886080 -> 58720256;

Les messages MUTATION ont été supprimés au cours des 5 000 dernières ms: 814 pour le délai d'attente interne et 0 pour le délai d'expiration du nœud croisé. Temps de latence interne moyen: 2874 ms et Latence de nœud croisé moyen: 0 ms

Pour éviter cela, je devrais diminuer l'option MaxGCPauseMillis dans Cassandra-env.sh. .

notre valeur par défaut est 500ms (JVM_OPTS = "$ JVM_OPTS -XX: MaxGCPauseMillis = 500)

Would réglage de ce paramètre réduira les messages de mutation a chuté Ai-je besoin d'augmenter ou de diminuer la valeur

..
+0

vous devez publier des journaux GC détaillés, pas une seule ligne. '-XX: + PrintGCDetails' – the8472

Répondre

0

1.8s GC peut ne pas être le problème exclusif si la mutation a pris plus de 5s à traiter.Est-ce qu'il y a une grande quantité en attente dans tpstats? Comment cpu charger look Vous écrivez peut-être à une vitesse que Cassandra ne peut pas supporter avec votre matériel et le modèle de données

Vous voudrez probablement simplement essayer d'augmenter votre taille de tas d'abord.Sous 16 Go d'espace i s assez difficile à syntoniser avec G1. Il est plus facile d'aider si vous incluez les logs gc depuis le temps qui a pris 1.8s, sans les logs il est difficile de dire ce qui s'est exactement passé. Vous pouvez essayer de diminuer la cible de temps gc, mais cela pourrait ne pas aider si ce GC long était un aberration. Vous voudrez peut-être augmenter la taille de la région si prendre trop de temps pour mettre à jour le jeu de mémorisation. Vérifiez les objets humongous et ceux qui peuvent être des problèmes de modélisation de données (l'augmentation de la taille de la région aiderait). Si vous obtenez un échec d'évacuation d'un pic d'allocation, augmentez la taille du tas ou réglez GCReservePercent sur 25 au lieu de 10 pour lui donner plus d'espace pour gérer les pointes.

+0

Merci, Chris Il n'y a pas de tâches en attente – rishi

+0

Merci, Chris Il n'y a pas de tâches en attente. Notre taille de tas est 16gb.Tout le temps nous avons la mutation abandonnée, nous voyons que le nouveau GEN est pris environ 2 sec's.so si je diminue la valeur du paramètre à 250 millisecondes est-il inutile? – rishi

+0

Cela dépend. Si vous exécutez tranquillement alors avoir une pointe soudaine dans les allocations, vous pouvez toujours avoir un problème. C'est là que vous pouvez voir les GCs aberrants (c'est-à-dire la plupart du temps ses 500ms mais une fois par jour quand il désérialise un grand index de partition dans un compactage il a un GC de 2s). C'est là que les logs gc sont utiles, aussi pour déterminer ce qu'il faut régler pour l'empêcher. –