编程知识 cdmana.com

Java JVM Old GC prend des dizaines de s, ce qui provoque une alarme système

Questions

Alarme environnementale de production,Délai d'interface.

Raisons

old gcÇa prend des dizaines des,Le système est instantanément bloqué,Puis les interfaces ont été décalées.


Une autre application prend aussi du tempss,Le système est instantanément bloqué,Et beaucoup d'alarmes.

Pas à chaque foisold gcIls vont tous se coincer.,Mais une fois de temps en tempsold gcÇa prendra du temps,La plupart du temps normal.

Causes profondes

Pourquoiold gcÇa prend tellement de temps?La raison en est qu'un noeud a été connectéskywalking,Et ensuite ajustéjvmConfiguration,Plus précisément::Proportion de jeunes et de personnes âgées,Par défaut2.Maintenant, oui.4,Double la taille de l'ancienne mémoire——Ce qui a conduit à l'âgegcLe seuil est plus élevé,C'est pour ça quegcUne fois.,Mais il est possible qu'une seule fois prenne trop de temps.


Noeud normalold gcC'est comme ça.

Noeud normal et noeud anormaljvmConfiguration

Noeud d'exception

 $ jinfo -flags 11597

Attaching to process ID 11597, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 25.161-b12

Non-default VM flags: 

-XX:CICompilerCount=4 -XX:InitialHeapSize=3221225472 -XX:MaxHeapSize=3221225472 

-XX:MaxMetaspaceSize=524288000 

-XX:MaxNewSize=643825664 

-XX:MetaspaceSize=314572800 

-XX:MinHeapDeltaBytes=524288 -XX:NewRatio=4 -XX:NewSize=643825664 -XX:OldSize=2577399808 -XX:ThreadStackSize=512 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops 

-XX:+UseParallelGC  //Par défaut:Débit prioritaire-Cénozoïque + Multithreading-Vieux temps

Command line:  -javaagent:/home/xxx/private-cloud/agent/skywalking-agent.jar -Dskywalking.agent.service_name=trade-base -Dskywalking.agent.instance_uuid=xxx -Ddubbo.application.name=xxx-base -Ddubbo.application.version=green-1 

-Xmx3072m -Xms3072m 

-XX:NewRatio=4  // Le rapport entre le nouveau et l'ancien ,Par défaut2.Maintenant, oui.4,Double la taille de l'ancienne mémoire——Ce qui a conduit à l'âgegcLe seuil est plus élevé,C'est pour ça quegcUne fois.,Mais il est possible qu'une seule fois prenne trop de temps.

-Xss512k 

-XX:MetaspaceSize=300m 

-XX:MaxMetaspaceSize=500m

Note:: Parce que c'est connecté skywalking,Et configuréjvmParamètres,Alors...jvm Les paramètres ne sont pas les mêmes que les noeuds normaux , C'est la raison pour laquelle .

Pourquoi la nouvelle configuration pose problème ?Parce que: Le rapport entre le nouveau et l'ancien ,Par défaut2.Maintenant, oui.4,Double la taille de l'ancienne mémoire——Ce qui a conduit à l'âgegcLe seuil est plus élevé,C'est pour ça quegcUne fois.,Mais il est possible qu'une seule fois prenne trop de temps.

Notez que c'est juste connecté skywalking,Et parce queskywalkingUtilisation des ressources,Alors...jvm Mémoire augmentée , Mais l'ancien et le nouveau ratio ne devraient pas être augmentés .

Noeud normal

$ jinfo -flags 53022

Attaching to process ID 53022, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 25.161-b12

Non-default VM flags: 

-XX:CICompilerCount=3 

-XX:InitialHeapSize=127926272 

-XX:MaxHeapSize=2046820352 -XX:MaxNewSize=682098688 

-XX:MinHeapDeltaBytes=524288 -XX:NewSize=42467328 -XX:OldSize=85458944 

-XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps 

-XX:+UseParallelGC // Collecteur d'ordures par défaut

Command line:  -Ddubbo.application.name=xxx-base -Ddubbo.application.version=green-1

Solutions

Retour en arrièrejvmConfiguration, C'est - à - dire que le noeud en question Jvm La configuration a été changée pour ressembler au noeud normal .

Noeud normaljvm Est d'utiliser la configuration par défaut ,C'est - à - dire qu'il n'y a pas de configurationjvmParamètres.

Cet article est basé sur la plateforme Multi - blog OpenWrite Publication!

版权声明
本文为[Qingxiang Java]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/11/20211125173709238y.html

Scroll to Top