Бюджет зачастую вгоняет нас в рамки и заставляет оптимизировать код приложений и конфигурации серверов. Для того чтобы понять, какие процессы используют слишком много оперативной памяти существует несколько способов. Например, классическая программа top:
1 | top -o %MEM |
Недавно я наткнулся на очень удобный способ узнать о потреблении памяти процессами. Это программа ps_mem. Ее разработал Pádraig Brady и репозиторий хранится тут https://github.com/pixelb/ps_mem. Программа написана на python и добавлена во все репозитории распространенных операционных систем.
Установить его можно разными способами, например, через pip
1 | pip install ps_mem |
С помощью йогурта для Arch — подобных систем:
1 | yaourt ps_mem |
Или apt-get для Debian-like:
1 | sudo apt-get install ps_mem |
Можно загрузить напрямую:
1 | wget https://raw.githubusercontent.com/pixelb/ps_mem/master/ps_mem.py |
Запуск выполняется от имени администратора:
1 | sudo python ps_mem.py |
Программа выводит результат в виде простой упорядоченной по возрастанию потребления памяти таблицы:
Private + Shared = RAM used Program
104.0 KiB + 19.0 KiB = 123.0 KiB start_kdeinit
360.0 KiB + 92.5 KiB = 452.5 KiB rtkit-daemon
600.0 KiB + 54.5 KiB = 654.5 KiB crond
436.0 KiB + 235.0 KiB = 671.0 KiB startkde
448.0 KiB + 231.5 KiB = 679.5 KiB pycharm.sh
632.0 KiB + 84.0 KiB = 716.0 KiB gpg-agent
584.0 KiB + 256.0 KiB = 840.0 KiB kwrapper5
912.0 KiB + 42.5 KiB = 954.5 KiB systemd-logind
…
31.3 MiB + 3.9 MiB = 35.3 MiB kleopatra
34.7 MiB + 2.8 MiB = 37.5 MiB baloo_file
32.9 MiB + 7.0 MiB = 39.9 MiB krunner
———————————
1.8 GiB
=================================