Вопрос или проблема
С помощью этой команды я вижу процессы и использование оперативной памяти в мегабайтах
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
Пояснение изменений:
-
-k1
: Данный параметр указываетsort
на то, что сортировка должна производиться по первому полю (в данном случае — это значение памяти в мегабайтах). Это является ключевым изменением, позволяющим точно указывать, по какому столбцу будет проводиться сортировка. -
-rn
: Этот параметр указывает на числовую сортировку в обратном порядке.-r
означает сортировку от большего к меньшему, а-n
позволяет делать числовую сортировку, что особенно важно для числовых значений, таких как объем используемой памяти. -
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
Заключение
Правильная сортировка процессов по использованию оперативной памяти — это важный аспект мониторинга системных ресурсов, который помогает в выявлении проблем с производительностью. С помощью приведенной выше команды вы сможете быстро и легко отслеживать процессы, потребляющие наибольшее количество памяти, и принимать соответствующие меры.
Убедитесь, что вы используете актуальные и правильные команды, что повысит вашу эффективность в администрировании системы. Не забывайте следить за обновлениями системы для оптимизации работы ваших скриптов и команд.