How to Find out biggest cpu/memory consuming processes with ps command ?

Biggest memory consuming processes

root@kali:~# ps -eo pmem,pcpu,pid,args | tail -n +2 | sort -rnk 1 | head
 1.8  0.0  3304 gnome-panel
 1.3  0.2  3365 /usr/lib/vmware-tools/sbin64/vmtoolsd -n vmusr --blockFd 3
 1.3  0.0  3370 nautilus -n
 1.2  0.3  2642 /usr/bin/Xorg :0 -br -verbose -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-0vVbZF/database -nolisten tcp vt7
 1.0  0.1  3468 gnome-terminal
 0.9  0.0  3377 nm-applet
 0.8  0.0  3371 gnome-screensaver
 0.8  0.0  3357 gnome-sound-applet
 0.8  0.0  3267 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
 0.7  0.0  3458 /usr/lib/gnome-online-accounts/goa-daemon

Biggest cpu consuming processes

root@kali:~# ps -eo pmem,pcpu,pid,args | tail -n +2 | sort -rnk 2 | head
 0.1 26.4  5845 find / -name *fg*
 1.8  0.0  3304 gnome-panel
 1.3  0.3  3365 /usr/lib/vmware-tools/sbin64/vmtoolsd -n vmusr --blockFd 3
 1.3  0.3  2642 /usr/bin/Xorg :0 -br -verbose -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-0vVbZF/database -nolisten tcp vt7
 1.3  0.0  3370 nautilus -n
 0.9  0.1  3468 gnome-terminal
 0.9  0.0  3377 nm-applet
 0.8  0.0  3371 gnome-screensaver
 0.8  0.0  3357 gnome-sound-applet
 0.8  0.0  3267 /usr/lib/gnome-settings-daemon/gnome-settings-daemon

Explanations

  • ps Report a snapshot of the current processes
  • -e Select all processes
  • o Specify user-defined format
  • pmem,pcpu,pid,args user-defined format: memory,cpu, pid number and command
  • tail -n +2 Output lines starting to the second line (to avoid column names such %MEM, etc …)
  • sort -rnk 1 reverse (r), numeric sort (n) by column 1 (memory)
  • sort -rnk 2 reverse (r), numeric sort (n) by column 2 (cpu)
  • head output the 10 first lines

Enjoy !!!