Как правильно сортировать процессы, требующие много оперативной памяти?

Вопрос или проблема

С помощью этой команды я вижу процессы и использование оперативной памяти в мегабайтах

ps aux | awk ‘{print $6/1024 ” MB\t\t” $11}’ | sort -rn|less

Проблема в сортировке

9.95703 MB      /usr/lib/systemd/systemd-journald
9.89062 MB      /usr/sbin/winbindd
9.76953 MB      /usr/sbin/winbindd
9.69922 MB      php-fpm:
9.69922 MB      php-fpm:
9.69531 MB      php-fpm:
9.69531 MB      php-fpm:
9.69531 MB      php-fpm:
93.4297 MB      db_arc1_FREE
9.31641 MB      winbindd:
9.31641 MB      /usr/sbin/snmpd

Как правильно отсортировать, чтобы вывод стал таким?

93.4297 MB      db_arc1_FREE
9.95703 MB      /usr/lib/systemd/systemd-journald
9.89062 MB      /usr/sbin/winbindd
9.76953 MB      /usr/sbin/winbindd
9.69922 MB      php-fpm:
9.69922 MB      php-fpm:
9.69531 MB      php-fpm:
9.69531 MB      php-fpm:
9.69531 MB      php-fpm:
9.31641 MB      winbindd:
9.31641 MB      /usr/sbin/snmpd

Ответ или решение

Для корректной сортировки процессов, потребляющих оперативную память, необходимо внести небольшие изменения в команду, которую вы используете. Ваша команда в текущем виде обеспечивают сортировку по 6-му столбцу, где хранится количество памяти, используемой процессами, но будет лучше использовать прямую числовую сортировку. Давайте рассмотрим, как это сделать правильно.

Измененная команда

Вам следует изменить вашу команду следующим образом:

ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -k1 -rn | less

Пояснение изменений:

  1. -k1: Данный параметр указывает sort на то, что сортировка должна производиться по первому полю (в данном случае — это значение памяти в мегабайтах). Это является ключевым изменением, позволяющим точно указывать, по какому столбцу будет проводиться сортировка.

  2. -rn: Этот параметр указывает на числовую сортировку в обратном порядке. -r означает сортировку от большего к меньшему, а -n позволяет делать числовую сортировку, что особенно важно для числовых значений, таких как объем используемой памяти.

  3. less: Используется для постраничного просмотра результата, что особенно полезно, если у вас много процессов, и вывод может быть слишком большим, чтобы уместиться на одном экране.

Результат

После внесенных изменений ваш вывод должен выглядеть следующим образом:

93.4297 MB      db_arc1_FREE
9.95703 MB      /usr/lib/systemd/systemd-journald
9.89062 MB      /usr/sbin/winbindd
9.76953 MB      /usr/sbin/winbindd
9.69922 MB      php-fpm:
9.69922 MB      php-fpm:
9.69531 MB      php-fpm:
9.69531 MB      php-fpm:
9.69531 MB      php-fpm:
9.31641 MB      winbindd:
9.31641 MB      /usr/sbin/snmpd

Заключение

Правильная сортировка процессов по использованию оперативной памяти — это важный аспект мониторинга системных ресурсов, который помогает в выявлении проблем с производительностью. С помощью приведенной выше команды вы сможете быстро и легко отслеживать процессы, потребляющие наибольшее количество памяти, и принимать соответствующие меры.

Убедитесь, что вы используете актуальные и правильные команды, что повысит вашу эффективность в администрировании системы. Не забывайте следить за обновлениями системы для оптимизации работы ваших скриптов и команд.

Оцените материал
Добавить комментарий

Капча загружается...