Je cherche un moyen, à partir d'un script shell, d'obtenir l'utilisation du swap pour un processus particulier. Top peut afficher ces informations, mais seulement en mode interactif. Le mode batch n'affichera les personnalisations que lorsqu'un fichier .toprc est présent, mais vous ne pouvez pas spécifier un .toprc spécifique en ligne de commande. J'ai trouvé ce script, mais il n'y a pas d'entrées de swap dans /proc/*/smaps sur mon serveur :
# find /proc/ -maxdepth 1 -type d -regex '^/proc/[0-9]+$' -exec grep -Hi swap '{}'/smaps \;
#
donc le script renvoie simplement 0 pour chaque processus.
Existe-t-il un moyen de trouver ces informations? Je suis sur RHEL5.1 2.6.18-53.el5 x86_64.
Modifier :
Pour être clair, lorsque je parle d'"utilisation du swap", je veux dire la quantité de mémoire utilisée par un processus qui a été paginé vers le système de fichiers swap (ce qui ne se trouve actuellement pas dans la mémoire principale). En supposant qu'il n'y ait pas de meilleure solution, je vais définir par défaut le calcul avec (virtual - rss) via les valeurs de ps -o vsz,rss
.
0 votes
Eh bien, attends une seconde - est-ce que tu dis qu'il n'y a pas d'entrées, c'est-à-dire qu'il affiche une ligne vide et c'est tout? Ou est-ce que tu vois
Swap: 0 kB
? Parce que cela signifie qu'ils ne sont pas échangés - ce qui est un état valide. Si tu t'attends à ce que les choses soient échangées, quel mécanisme utilises-tu pour le découvrir?0 votes
Je veux dire qu'il n'y a pas d'entrées. S'il y avait des entrées, alors la commande find dans ma question aurait affiché 'Swap: 0'. Rien n'est affiché; il n'y a pas du tout d'entrées "Swap:" dans /proc.
0 votes
Votre question dit :
donc il sort simplement 0 pour chaque processus
, je voulais juste vérifier. Vous voudrez peut-être mettre à jour votre question pour préciser qu'elle ne produit rien.0 votes
Mis à jour pour dire "le script". Je pensais que "il n'y a pas d'entrées d'échange dans /proc/*/smaps" était assez clair :)
0 votes
C'est vrai; mais et si vous voyiez
Swap: 0 ko
et que vous supposiez que cela ne fonctionnait pas? Ce n'était pas le cas ici--mais vous seriez probablement surpris de voir à quel point les choses sont souvent mal interprétées. :) Mieux vaut toujours être clair!