Verwenden Sie den folgenden Befehl:
ps aux --sort -rss
Weitere Informationen zur Speichernutzung von Linux-Prozessen finden Sie hier
Eine schnelle und schmutzige Methode besteht darin, einfach die Ausgabe von ps aux
zu leiten bis sort
Befehl:
$ ps aux | sort -rn -k 5,6
Beispiel
$ ps aux | sort -rn -k 5,6
...
root 1584 0.0 0.0 22540 1236 ? S 07:04 0:01 hald-addon-storage: polling /dev/sr0 (every 2 sec)
root 1575 0.0 0.0 22536 872 ? S 07:04 0:00 /usr/libexec/hald-addon-generic-backlight
root 1574 0.0 0.0 22536 880 ? S 07:04 0:00 /usr/libexec/hald-addon-leds
root 1565 0.0 0.0 22536 876 ? S 07:04 0:00 /usr/libexec/hald-addon-rfkill-killswitch
saml 2507 0.0 0.0 22232 500 ? S 07:05 0:00 dbus-launch --sh-syntax --exit-with-session
root 1671 0.0 0.0 22156 936 ? Ss 07:04 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
...
Dies funktioniert nicht mit den Spaltenüberschriften, die mit der Ausgabe vermischt werden, aber es ist auf der Befehlszeile leicht zu merken und ist ein akzeptabler Weg, um das zu tun, was Sie wollen, wenn Sie diese Art von Ausgabe manuell anzeigen.
Beispiel
root 1791 0.0 0.0 4140 536 tty2 Ss+ 07:04 0:00 /sbin/mingetty /dev/tty2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 996 0.0 0.0 0 0 ? S 07:04 0:01 [kdmflush]
root 982 0.0 0.0 0 0 ? S 07:04 0:00 [kvm-irqfd-clean]
Weitere Tipps
Ein zusätzlicher Tipp wäre, die gesamte Ausgabe an einen anderen Befehl wie less
weiterzuleiten . Auf diese Weise können Sie sich die Informationen seitenweise ansehen und auch die Pfeiltasten und die Bild-auf/ab-Tasten verwenden, um vor und zurück durch die Ausgabe zu blättern.
$ ps aux | sort -rn -k 5,6 | less
Wenn Ihre Ausgabe viel umbricht, können Sie auch die -S
verwenden Wechseln Sie zu less, wodurch die gesamte Ausgabe stattdessen auf einer einzigen Zeile bleibt. Sie können sich dann mit den Pfeiltasten nach links/rechts/oben/unten bewegen, um alles zu sehen.
$ ps aux | sort -rn -k 5,6 | less -S
Sortieren innerhalb von ps
Bestimmte Versionen von ps
bieten die Möglichkeit, --sort
zu verwenden . Dieser Schalter kann dann Schlüssel annehmen, denen entweder ein +
vorangestellt ist oder ein -
um die Sortierreihenfolge anzugeben... vom kleinsten zum größten oder größten zum kleinsten.
Beispiele
vsz,-rss
$ ps aux --sort=vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
+vsz,+rss
$ ps aux --sort=+vsz,+rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
-vsz,-rss
$ ps aux --sort=-vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1832 0.0 0.0 2088924 3312 ? Sl 07:04 0:00 /usr/sbin/console-kit-daemon --no-daemon
saml 3517 0.2 1.2 2073196 100492 ? Sl 07:06 0:34 /home/saml/.dropbox-dist/dropbox
saml 3516 0.0 0.8 2071032 67388 ? Sl 07:06 0:07 /home/saml/.dropbox-dist/dropbox
saml 2657 0.1 0.7 1580936 57788 ? Sl 07:05 0:27 nautilus
Auch wenn ps nicht den tatsächlich verwendeten Speicher widerspiegelt, ist dieser Befehl ziemlich hilfreich.
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'