Отображение памяти в системах Linux, используемой процессами, в удобочитаемой форме с использованием утилит ps и awk.
Я буду использовать mawk, так как он установлен по умолчанию в дистрибутивах на основе Debian.
$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan compiled limits: max NF 32767 sprintf buffer 2040
Используйте команду ps для отображения двадцати топ процессов, использующих наибольшее количество памяти.
Обратите внимание, что размер резидентного набора (RSS) определяется в килобайтах (1024 байта, так как это память).
$ ps -ax --no-headers --format=pid,rss,command --sort=-rss,pid | head -20
5451 648148 /usr/lib/firefox/firefox -contentproc -childID 67 -isForBrowser -prefsLen 7220 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 3941 646684 /usr/lib/firefox/firefox -new-window 12932 622172 /usr/lib/firefox/firefox -contentproc -childID 70 -isForBrowser -prefsLen 7220 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 8580 549512 /usr/lib/firefox/firefox -contentproc -childID 10 -isForBrowser -prefsLen 6427 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 14041 536904 /usr/lib/virtualbox/VirtualBox --comment Debian --startvm dabea2f0-5c6e-4d44-9f37-8dfc070e1ff8 --no-startvm-errormsgbox 17219 487292 /usr/lib/firefox/firefox -contentproc -childID 29 -isForBrowser -prefsLen 7218 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 3477 406112 /usr/bin/gnome-shell 4272 268492 /usr/bin/ruby /usr/bin/jekyll server --future -w 467 128224 /lib/systemd/systemd-journald 4088 112420 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 226 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 3287 99784 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3 1825 78204 /usr/bin/gnome-shell 309 76452 keepassxc 13972 68024 /usr/lib/virtualbox/VirtualBox 4063 62096 /usr/sbin/netdata -P /run/netdata/netdata.pid -D 4161 58964 /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.plugin 1 3830 56316 /usr/lib/gnome-terminal/gnome-terminal-server 4416 32520 /usr/sbin/libvirtd 4162 27772 /usr/bin/python3 /usr/bin/chrome-gnome-shell /usr/lib/mozilla/native-messaging-hosts/org.gnome.chrome_gnome_shell.json chrome-gnome-shell@gnome.org 18463 27396 /usr/lib/packagekit/packagekitd
Решение этой проблемы состоит в том, чтобы использовать красивый размер резидентного набора (RSS).
$ ps -ax --no-headers --format=pid,rss,command --sort=-rss,pid | head -20 | awk 'BEGIN{suffixes_len=split("kB MB GB TB",suffixes)} {n_suffix=1; while($2 > 1000 && n_suffix < suffixes_len) {$2 /= 1024; n_suffix++;}; printf "%5s %7.2f %2s %s\n",$1,$2,suffixes[n_suffix],substr($0, index($0,$3))}'
5451 632.96 MB /usr/lib/firefox/firefox -contentproc -childID 67 -isForBrowser -prefsLen 7220 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 3941 631.53 MB /usr/lib/firefox/firefox -new-window 12932 607.59 MB /usr/lib/firefox/firefox -contentproc -childID 70 -isForBrowser -prefsLen 7220 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 8580 536.63 MB /usr/lib/firefox/firefox -contentproc -childID 10 -isForBrowser -prefsLen 6427 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 14041 524.32 MB /usr/lib/virtualbox/VirtualBox --comment Debian --startvm dabea2f0-5c6e-4d44-9f37-8dfc070e1ff8 --no-startvm-errormsgbox 17219 475.87 MB /usr/lib/firefox/firefox -contentproc -childID 29 -isForBrowser -prefsLen 7218 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 3477 396.59 MB /usr/bin/gnome-shell 4272 262.20 MB /usr/bin/ruby /usr/bin/jekyll server --future -w 467 125.22 MB /lib/systemd/systemd-journald 4088 109.79 MB /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 226 -prefMapSize 169730 -schedulerPrefs 0001,2 -parentBuildID 20181023214826 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 3941 true tab 3287 97.45 MB /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3 1825 76.37 MB /usr/bin/gnome-shell 309 74.66 MB keepassxc 13972 66.43 MB /usr/lib/virtualbox/VirtualBox 4063 60.64 MB /usr/sbin/netdata -P /run/netdata/netdata.pid -D 4161 57.58 MB /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.plugin 1 3830 55.00 MB /usr/lib/gnome-terminal/gnome-terminal-server 4416 31.76 MB /usr/sbin/libvirtd 4162 27.12 MB /usr/bin/python3 /usr/bin/chrome-gnome-shell /usr/lib/mozilla/native-messaging-hosts/org.gnome.chrome_gnome_shell.json chrome-gnome-shell@gnome.org 18463 26.75 MB /usr/lib/packagekit/packagekitd