Je sais que VSZ in ps
correspond à l'espace d'adressage total alloué à l'application et est parfois aliasé vsize (mentionné dans la page de manuel de ps
sur linux), mais quelle est la définition de VSIZE top
? Cette sortie supérieure de l'iPhone est différente de celle du haut sur Linux:
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
1875 emma 0.0% 0:30.83 7 139 932 17868K 5328K 29M 181M
root# ps -eo pid,rss,vsz|grep 1875
1875 29324 441324
top
sur IOS n'inclut pas les objets partagés dans vsize, ou quelque chose.Réponses:
Le système de mémoire Linux est rempli de nombreuses routines d'utilitaires d'optimisation de la mémoire et de partage de mémoire, ce qui rend l'idée même de la façon dont la mémoire est partagée et consommée parmi, une approche lourde. sous
/proc
système de fichiers. Particulièrementps
, RSS (mémoire de taille résidente) et VSIZE (taille de mémoire virtuelle) sont tous deux importants, mais VSIZE ne montre pas l'utilisation précise de la mémoire et la différence entre VSIZE et rss est ce qui est réellement prévu et alloué au programme pendant l'initialisation mais peut ne pas encore être référencé. Comme le programme peut avoir de nombreuses bibliothèques liées, mais elles ne sont pas encore chargées car elles ne sont pas encore référencées dans le programme d'exécution réel. RSS donne la mémoire totale réellement utilisée par le programme mais peut ne pas donner une image réelle de la consommation de mémoire, car la plupart de la mémoire allouée peut être partagée avec d'autres instances du même processus ou d'autres processus. Regarder sous/proc/<processid>/maps
peut donner une idée approximative de la façon dont la mémoire a été utilisée, mais ils peuvent parfois être trompeurs. Utilisationpmap -x <pid>
à partir de la ligne de commande, utile pour voir la propagation est.Les utilitaires souvent meilleurs sont
free
etvmstat
.free
vous donnera des détails sur la consommation de mémoire actuelle et vmstat peut être utilisé pour voir à quelle fréquence il est mis à jour.la source