Как сортировать процессы по использованию памяти в Linux с помощью top

Выяснить, какие процессы занимают больше всего оперативной памяти, в Linux не так очевидно, как в Windows, но стандартная команда top делает это быстро и без внешних зависимостей. По умолчанию top выводит процессы в порядке загрузки CPU, поэтому сортировку по памяти нужно включить вручную.
Как запустить top
Откройте терминал (на многих дистрибутивах работает сочетание клавиш Ctrl + Alt + T). Введите:
topОткроется интерактивный интерфейс со списком процессов и несколькими столбцами: PID, USER, PR, NI, VIRT, RES, SHR, S, %CPU, %MEM, TIME+, COMMAND.
Как сортировать вывод top по использованию памяти
Чтобы отсортировать процессы по использованию памяти, нажмите в окне top сочетание клавиш Shift + M (то есть заглавную M). Это переключит порядок на убывание столбца %MEM. Повторное нажатие обновит сортировку по текущим значениям.
- %MEM — процент от общей физической оперативной памяти.
- RES/ RSS — объём физической памяти (resident set) в килобайтах, которую процесс реально занимает.
Чтобы выйти из top и вернуться в приглашение терминала, нажмите q.
Важно: %MEM показывает процент от общей памяти, включая кеши ОС. При диагностике обращайте внимание на RES (resident) и SHR (shared), чтобы понять, сколько памяти реально «занято» процессом.
Быстрые альтернативы и примеры команд
Если вы хотите получить похожую информацию в однократном выводе (неинтерактивно) или в скриптах, используйте ps:
ps aux --sort=-%mem | head -n 20
# или с явными полями
ps -eo pid,user,comm,%mem,rss --sort=-%mem | head -n 20Другие инструменты:
- htop — более дружелюбный интерактивный монитор, поддерживает горизонтальную сортировку и дерево процессов.
- smem — показывает распределение памяти с учётом разделяемых страниц (полезно на серверах).
- free, vmstat — для общей картографии памяти и свопа.
Пример запуска htop и сортировки:
htop
# в htop нажмите F6 для выбора столбца и выберите %MEMКогда сортировка по памяти может вводить в заблуждение
- Процесс может иметь высокий VIRT (виртуальная память), но низкий RES — это значит, что он зарезервировал много виртуальной памяти, но реально не использует её.
- Совместно используемая память (SHR) может входить в RES нескольких процессов — суммарное потребление при агрегации будет меньше, чем простое суммирование RES.
- Кеши и буферы ядра уменьшают видимый свободный объём RAM, но обычно они отдаются под приложения при необходимости.
Если вы видите процесс с большим %MEM, проверьте RES и SHR. Для проверки выделения страниц используйте pmap:
pmap -x | less Методология диагностики — пошагово
- Откройте top и нажмите Shift + M.
- Найдите процессы с высоким %MEM и большой RES.
- Определите владельца процесса (USER) и команду (COMMAND).
- При необходимости сядьте в систему как тот же пользователь и выполните pmap или lsof для изучения ресурсов.
- Если процесс ненужный — аккуратно перезапустите сервис или завершите его (kill/ systemctl restart).
- Проверьте логи приложения и системные логи (journalctl, /var/log) на предмет утечек памяти.
Чек-листы по ролям
Администратор сервера:
- Открыть top, Shift + M.
- Проверить RES, SHR и %MEM.
- Использовать smem для распределённого анализа памяти.
- Перезапустить сервис корректно через systemctl.
- Отследить историю использования памяти через мониторинг (Prometheus/Grafana/ELK).
Пользователь рабочего стола:
- Открыть top или htop.
- Закрыть лишние вкладки браузера (частая причина высокого использования RAM).
- При необходимости перезапустить приложение или выйти из сеанса и войти снова.
Сохранение настроек top
Если нужно, чтобы top всегда открывался с той же сортировкой, нажмите W (заглавная W) во время работы top — это запишет настройки в файл ~/.toprc.
Критерии приёмки
- Можно открыть top и отсортировать процессы по %MEM нажатием Shift + M.
- RES процесса понятен и позволяет оценить реальное использование RAM.
- Имеется план действий: перезапуск сервиса, анализ логов или увеличение ресурсов.
Глоссарий в одну строку
- %MEM — процент используемой физической памяти; RES — resident set size (фактическая RAM процесса); VIRT — зарезервированная виртуальная память.
Часто задаваемые вопросы
Как автоматически сортировать процессы по памяти при каждом запуске top?
Откройте top, выставьте сортировку Shift + M, затем нажмите W — настройки сохранятся в ~/.toprc и будут применяться при последующих запусках.
В чем разница между %MEM и RES?
%MEM — это процент от общей физической памяти, занятый процессом; RES — объём физической памяти в килобайтах, реально используемой процессом.
Краткое резюме: top с Shift + M — быстрый способ увидеть, кто ест RAM; для подробного и аккуратного анализа проверяйте RES/SHR, используйте ps/htop/smem и сохраняйте настройки через W.
Похожие материалы
Исправить ERROR_WAS_LOCKED (код 717) в Windows
Остановить принудительное обновление BIOS в Windows 11
Изменить подписку Adobe Creative Cloud
MySQL Operator в Kubernetes: установка и эксплуатация
Отключение пароля после сна в Windows 11