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!