Dans une application, j'ai les éléments suivants -verbose:gc
[GC (Metadata GC Threshold) 8530310K->2065630K(31574016K), 0.3831399 secs]
[Full GC (Metadata GC Threshold) 2065630K->2053217K(31574016K), 3.5927870 secs]
[GC (Metadata GC Threshold) 8061486K->2076192K(31574016K), 0.0096316 secs]
[Full GC (Metadata GC Threshold) 2076192K->2055722K(31574016K), 0.9376524 secs]
[GC (Metadata GC Threshold) 8765230K->2100440K(31574016K), 0.0150190 secs]
[Full GC (Metadata GC Threshold) 2100440K->2077052K(31574016K), 4.1662779 secs]
Qu'est-ce que c'est "Seuil de métadonnées GC" et comment le réduire. Remarque: bien que le GC complet passe beaucoup de temps à nettoyer, il nettoie en fait beaucoup, c'est-à-dire qu'il serait préférable qu'il ne le fasse pas.
Le message de journal indique que GC a été provoqué par échec d'allocation de Metaspace . Les métaspaces contiennent les métadonnées de classe. Ils sont apparus dans Java 8 pour remplacer PermGen .
Voici quelques options à régler Metaspaces .
Vous pouvez définir une ou plusieurs des options suivantes:
-XX:MetaspaceSize=100M
Définit la taille de l'espace de métadonnées de classe alloué qui déclenchera un garbage collection la première fois qu'il sera dépassé;
-XX:InitialBootClassLoaderMetaspaceSize=32M
pour augmenter le chargeur de classe de démarrage Metaspace;
-XX:MinMetaspaceFreeRatio=50
pour faire croître les Metaspaces de manière plus agressive;
-XX:MaxMetaspaceFreeRatio=80
pour réduire le risque de rétrécissement des métaspaces;
-XX:MinMetaspaceExpansion=4M
la taille minimale par laquelle un Metaspace est étendu;
-XX:MaxMetaspaceExpansion=16M
la taille maximale pour étendre un Metaspace sans GC complet.
Bien qu'il existe déjà une réponse acceptée, je voulais mentionner qu'il y a aussi:
-XX:MaxMetaspaceSize=<NNN> where <NNN>
est la quantité maximale d'espace à allouer aux métadonnées de classe (en octets).
Aussi de ici ,
La récupération de place des classes mortes et des chargeurs de classe est déclenchée une fois que l'utilisation des métadonnées de classe atteint le "MaxMetaspaceSize".
Il y a une liste des options disponibles dans cet article .