Exécuter ps ux
Retourne une belle liste d'informations de processus, facile à grep
via ou watch
. Cependant, il ne semble pas y avoir beaucoup de flexibilité dans la production d'utilisation de la mémoire; Le RSS
(taille du jeu de résident) est imprimé en KB, qui pour les processus importants est difficile à lire (surtout en un coup d'œil) et %MEM
donne 100
× _ RSS
/system_memory
.
L'utilitaire du
a une belle -h
Drapeau qui imprime l'espace de manière plus conviviale. Je n'ai pas été capable de trouver quelque chose d'équivalent pour ps
. Y a-t-il une astuce de formatage spéciale qui peut accomplir cela?
ps ux | numfmt --header --to=iec --field 5,6 --padding 6
Vous avez besoin de corutilles> = 8.25
Personnellement, je préfère celui-ci:
ps -eo pmem,comm,pid,maj_flt,min_flt,rss,vsz --sort -rss | numfmt --header --to=iec --field 4-5 | numfmt --header --from-unit=1024 --to=iec --field 6-7 | column -t | head
Il semble qu'il n'y ait aucun drapeau approprié dans ps
, vous devez donc utiliser un outil différent (je préfère personnellement htop
) ou désordre avec ps
Sortie un peu. Je suppose que vous voulez coller avec ps
. Voici un sale petit script que j'ai fait comme exemple:
# get terminal width
WIDTH=`tput cols`
# pipe stdin to awk
cat | \
awk '\
BEGIN {
# set output format
CONVFMT="%.2f"
}
NR==1 {
# search first line for columns that need to be converted from K to M
for (i=1;i<=NF;i++)
# add condition for new columns if you want
if ($i=="VSZ" || $i=="RSS") {
# column numbers are stored in an array
arr[i]=i;
$i = $i "(MB)"
}
}
NR > 1 {
# edit appropriate columns
for (i in arr)
$i=$i/1024;
}
{
# print every line
print $0
}' | \
# format the output into columns and trim it to terminal width
column -t | cut -c 1-$WIDTH
Enregistrez-le dans un fichier, dites prettyps.sh
, le rendre exécutable:
chmod + x prettyps.sh
et utiliser comme suit:
ps ux | /path/to/prettyps.sh
L'utilisation de ce script a l'inconvénient d'ajouter des processus supplémentaires à la sortie PS, mais il fonctionne néanmoins:
[.____] $ PS UX | ./prettyps.sh USUser PID% CPU% cpu% (MB) RSS (MB) TTY STAT Démarrer la commande Pono 2658 0,0 0,0 358.88 4.29? SL 02:33 0:00/USR/BIN/GNOME-KeyRing [.____] ... Sortie tronquée ... Pono 4507 0.0 0.0 19.14 1.81 pts/1 s + 03:29 0:00 [.____] pono 4518 0.0 0.0 10.55 0,96 pts/1 s + 03:29 0:00 Page de pager [ SSL 04:10 0:24 /Opt/sublime_text/subl nom_f.]Pono 4742 0,1 0,4 339.05 25.80? SL 04:10 0:03/opt/sublime_text/plug Pono 5177 0.0 0.0 19.23 1.32 pts/0 r + 05:05 0:00 ps Pono 5178 0.0 0,0 4.34 0,61 pts/0 S + 05:05 0:00/bin/sh
J'espère que cela vous aidera à trouver une manière qui vous convient.
Accessoires à @Adrianlxt! Ceci est mon nouvel alias "PSS":
ps -eo pid,pmem,rss,vsz,comm,command --sort -rss | numfmt --header --from-unit=1024 --to=iec --field 3-4 | awk '$3 != 0'