Je fais tourner un simple processus java avec jetty, pour lequel top indique 2.9g de RAM. La version du JDK utilisée est 1.8.0_112.
En utilisant Native Memory Tracking (jcmd), il apparaît que la mémoire totale engagée n'est que de 1,5G de mémoire.
La taille du pool de tampons directs est également très faible, comme le signale jvisualvm.
Je suis tout à fait conscient que la mémoire affichée par le NMT est une mémoire engagée qui n'a pas besoin d'être dans la RAM. Dans ce cas, la contribution de la mémoire NMT à la mémoire RES devrait être inférieure à 1,5 Go de mémoire RES.
Dans mon cas, la différence est de ~1.4G (RES affiche 1.4G de mémoire en plus) ce qui ne peut pas être attribué uniquement aux librairies partagées, jars. Est-ce que quelqu'un peut me suggérer comment savoir ce qu'est cette mémoire supplémentaire et quels outils peuvent être utilisés pour les vérifier ?
J'ai vérifié tous les problèmes existants en ligne/Stackoverflow, mais je n'ai pas trouvé de réponse appropriée.