103 votes

Que signifient anon-rss et total-vm

Récemment, le processus tomcat sur ma machine Linux a été arrêté brusquement. Après investigation, j'ai trouvé le message d'erreur suivant dans le fichier /var/log/messages :

kernel: \[1799319.246494\] Out of memory: Kill process 28536 (java) score 673 or sacrifice childSep 
kernel: \[1799319.246506\] Killed process 28536 (java) total-vm:1271568kB, anon-rss:426528kB, file-rss:0kB

Maintenant, est-ce que quelqu'un pourrait me dire ce qui est inclus dans total-vm et comment anon-rss est différent de rss ?

168voto

Breno Leitão Points 2631

Comme je le comprends, la taille de la mémoire virtuelle qu'un processus utilise est répertoriée sous le nom de "total-vm". Une partie de celle-ci est réellement mappée dans la RAM elle-même (allouée et utilisée). C'est le "RSS".

Une partie du RSS est allouée dans des blocs mémoire réels (autres que mappés dans un fichier ou un périphérique). C'est la mémoire anonyme ("anon-rss") et il y a aussi des blocs de mémoire RSS qui sont mappés dans des périphériques et des fichiers ("file-rss").

Donc, si vous ouvrez un très grand fichier dans vim, le file-rss sera élevé, d'un autre côté, si vous malloc() beaucoup de mémoire et l'utilisez réellement, votre anon-rss sera également élevé.

D'un autre côté, si vous allouez beaucoup d'espace (avec malloc()), mais ne l'utilisez jamais, le total-vm serait plus élevé, mais aucune mémoire réelle ne serait utilisée (en raison du dépassement de mémoire), donc, les valeurs rss seraient faibles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X