Pratique de réglage des paramètres JVM de démarrage du microservice JDK 8.x

1.1 Configurer les paramètres de démarrage de la JVM

configuration du serveur

matériel Ressource
Mémoire 6Gi
CPU 4 Nucléaire
APP_PARAM="-Xmx2g -Xms2g -Xmn768m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xss256k -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:-ResizePLAB -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:MaxGCPauseMillis=200  -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2"

1.2 Explication

Il s'agit d'une variable APP_PARAM qui contient plusieurs paramètres de machine virtuelle Java (JVM), qui sont utilisés pour configurer diverses options de la JVM lors du démarrage d'un programme Java. Expliquons la signification de ces paramètres un par un :

Paramètres JVM expliquer
-Xmx2g Définissez la mémoire de tas maximale de la JVM sur 2 Go. Il s'agit de la quantité maximale de mémoire que le tas Java peut utiliser.
-Xms2g Définissez la mémoire de tas initiale de la JVM sur 2 Go. Il s'agit de la taille de mémoire initiale du tas Java, qui sera allouée au tas au démarrage de la JVM.
-Xmn768m Définissez la taille initiale de la jeune génération de la JVM sur 768 Mo. La jeune génération est la zone du tas Java utilisée pour stocker les objets nouvellement créés.
-XX:MetaspaceSize=256m Définissez la taille initiale de Metaspace sur 256 Mo. Le méta-espace est utilisé pour stocker les métadonnées des classes.
-XX:MaxMetaspaceSize=256m Définissez la taille maximale de Metaspace sur 256 Mo. Lorsque le Metaspace atteint cette taille, la JVM déclenche la récupération de place pour récupérer les métadonnées de classe qui ne sont plus utilisées.
-Xss256k Définissez la taille de la pile de chaque thread sur 256 Ko. Cela détermine la quantité de mémoire que chaque thread peut utiliser.
-XX:+UseG1GC Spécifie d'utiliser le ramasse-miettes G1 (Garbage-First). G1 est un ramasse-miettes moderne adapté aux applications avec une grande mémoire et des processeurs multicœurs.
-XX:+AlwaysPreTouch Spécifie que toutes les pages du tas sont pré-allouées et remplies au démarrage de la JVM, pour éviter les retards lors des utilisations ultérieures.
-XX:-ResizePLAB Désactivez le redimensionnement adaptatif Parallel Lab (PLAB). PLAB est une technique utilisée dans le collecteur G1 pour optimiser l'allocation des objets.
-XX:+ParallelRefProcEnabled Activer le traitement parallèle des références. Cela permet au collecteur G1 d'utiliser le traitement parallèle lors de la gestion des références.
-XX:+ExplicitGCInvokesConcurrent Permet à la récupération de place d'être effectuée en parallèle avec des cycles de marquage simultanés lorsque System.gc() est explicitement appelé.
-XX:MaxGCPauseMillis=200 Réglez le temps de pause maximal du GC souhaité sur 200 millisecondes. Le collecteur G1 tentera de maintenir les temps de pause du GC dans cette plage.
-XX:ParallelGCThreads=4 Définissez le nombre de threads pour la récupération de place parallèle sur 4. Cela détermine le nombre de threads utilisés lors d'une récupération de place parallèle.
-XX:ConcGCThreads=2 Définissez le nombre de threads de récupération de place simultanés sur 2. Cela détermine le nombre de threads utilisés lors de la récupération de place simultanée.
  • Ces paramètres JVM peuvent être ajustés en fonction de l'application spécifique et de l'environnement matériel pour optimiser les performances et l'utilisation de la mémoire des programmes Java.
  • Notez que certains paramètres peuvent avoir des effets différents dans différentes versions de Java ou différentes implémentations de JVM. Par conséquent, les tests et les réglages sont recommandés au cas par cas.

1.3 Idées d'optimisation des paramètres JVM

L'optimisation des paramètres JVM est un processus complexe qui doit être ajusté en fonction des applications et des environnements matériels spécifiques.

Voici quelques suggestions d'optimisation :

1.3.1 Ajuster la taille de la mémoire de tas

Envisagez d'augmenter de manière appropriée la mémoire maximale -Xmxet la mémoire initiale du tas en fonction des besoins réels en mémoire de l'application -Xms. Mais ne sur-allouez pas et évitez un tas trop volumineux qui conduit à des récupérations de place fréquentes.

1.3.2 Taille de la jeune génération

-Xmn définit la taille initiale de la jeune génération. Ajustez modérément la taille de la jeune génération en fonction de la fréquence de création d'objets de l'application et de la taille du tas. Une jeune génération plus petite peut entraîner des collectes d'ordures plus fréquentes, et une jeune génération plus nombreuse peut entraîner des collectes d'ordures moins fréquentes.

1.3.3 Taille du méta-espace

-XX:MetaspaceSizeet -XX:MaxMetaspaceSizedéfinir la taille initiale et maximale du Metaspace. Augmentez modérément la taille du métaspace en fonction des exigences de chargement de classe de l'application.

1.3.4 Taille de la pile

-XssDéfinit la taille de la pile pour chaque thread. Ajustez la taille de la pile de manière appropriée en fonction des exigences de filetage de l'application. Une taille de pile excessivement grande peut entraîner une limitation du nombre de threads par la mémoire disponible.

1.3.5 Sélection du ramasse-miettes

-XX:+UseG1GCL'utilisation du ramasse-miettes G1 est un bon choix, en particulier dans un environnement à grande mémoire et à processeur multicœur.

1.3.6 Paramètres de récupération de place

Ajustez les paramètres du ramasse-miettes en fonction de la situation réelle, tels que -XX:MaxGCPauseMillis, -XX:ParallelGCThreadset -XX:ConcGCThreads. L'ajustement de ces paramètres nécessite des tests et une optimisation des performances dans des scénarios d'application réels.

1.3.7 Mémoire pré-allouée

-XX:+AlwaysPreTouch pré-alloue de la mémoire de tas au démarrage de la JVM, évitant les retards causés par les allocations de mémoire ultérieures.

1.3.8 Désactiver ResizePLAB

-XX:-ResizePLABLe dimensionnement Parallel Lab (PLAB) peut être désactivé.


  • L'optimisation des paramètres JVM nécessite une prise en compte complète des exigences de performance des applications, de l'environnement matériel et des ressources de mémoire disponibles.
  • Il est recommandé d'effectuer des tests et une évaluation des performances dans l'environnement de production, et d'ajuster progressivement les paramètres pour obtenir les meilleures performances et l'utilisation de la mémoire.
  • Dans le même temps, veillez à ne pas trop optimiser et à éviter d'introduire de nouveaux problèmes dus à des ajustements de paramètres excessifs.

2. Paramètres JVM couramment utilisés

insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/hadues/article/details/132018430
conseillé
Classement