Použijte následující příkaz:
ps aux --sort -rss
Zde najdete další využití paměti procesu Linux
Rychlou a nečistou metodou je pouze zapojit výstup ps aux
na sort
příkaz:
$ ps aux | sort -rn -k 5,6
Příklad
$ 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
...
Neřeší to záhlaví sloupců, která se mísí s výstupem, ale je snadno zapamatovatelná na příkazovém řádku a je to přijatelný způsob, jak při ručním prohlížení tohoto typu výstupu dělat to, co chcete.
Příklad
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]
Další tipy
Dalším tipem by bylo přesměrování celého výstupu na jiný příkaz, jako je less
. To vám umožní prohlížet si informace po stránce a také pomocí kláves se šipkami a klávesami o stránku nahoru/dolů procházet výstupem tam a zpět.
$ ps aux | sort -rn -k 5,6 | less
Pokud je váš výstup hodně zabalený, můžete také použít -S
přepněte na méně, což přinutí celý výstup zůstat na jednom řádku. Poté se můžete pomocí kláves se šipkami pohybovat doleva/doprava/nahoru/dolů a zobrazit vše.
$ ps aux | sort -rn -k 5,6 | less -S
Řazení v rámci ps
Určité verze ps
poskytují možnost používat --sort
. Tento přepínač pak může převzít klíče, které mají předponu +
nebo -
k označení pořadí řazení...od nejmenšího po největší nebo od největšího po nejmenší.
Příklady
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
I když ps neodráží skutečnou použitou paměť, tento příkaz je docela užitečný.
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 "" }'