que signifie anon-rss et total-vm

Récemment, le processus tomcat sur ma machine Linux a été interrompu brutalement. Après enquête, j’ai trouvé ci-dessous un message d’erreur dans le fichier / var / log / messages:

 kernel: [1799319.246494] Mémoire insuffisante: Kill process 28536 (java) marquer 673 ou sacrifier childSep 
 kernel: [1799319.246506] Processus tué 28536 (java) total-vm: 1271568kB, anon-rss: 426528kB, fichier-rss: 0ko

Maintenant, quelqu’un peut-il s’il vous plaît me dire que tout est inclus dans total-vm et en quoi anon-rss est anon-rss différent de rss ?

Si je comprends bien, la taille de la mémoire virtuelle utilisée par un processus est répertoriée comme “total-vm”. Une partie de celui-ci est vraiment mappée dans la RAM elle-même (allouée et utilisée). C’est “RSS”.

Une partie du RSS est allouée dans des blocs de mémoire réels (autres que mappés dans un fichier ou un périphérique). C’est de 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 énorme fichier dans vim, le fichier-rss serait élevé, de l’autre côté, si vous utilisez malloc () beaucoup de mémoire et l’utilisez vraiment, votre anon-rss serait également élevé.

D’un autre côté, si vous allouez beaucoup d’espace (avec malloc ()), mais que les utilisateurs ne l’utilisent pas, la valeur totale de vm serait plus élevée, mais aucune mémoire réelle ne serait utilisée (à cause de la mémoire excessive). Les valeurs rss seraient faibles.