Страницы

Поиск по вопросам

четверг, 5 декабря 2019 г.

Команда для вывода топ 10 приложений, использующих ОЗУ системы

#linux #bash #terminal #gnu


Желаемо в terminale при вводе top10 выводился список 10 самых память потребляемых
приложений. Наподобие:

1  firefox 1025Mb 
2  chrome  800Mb 
3  apache  600Mb
...
10 nginx   100Mb

    


Ответы

Ответ 1



Как отсортировать вывод - уже показали. Но только оно решает немного другую задачу:) Решим задачу правильно. Для начала выведем то, что нас просили ps -e -o rss,command | awk '{arr[$2]+=$1}END {for (i in arr) print i"\t"arr[i]/1024"Mb"}' | sort -k 2 -n -r | head | nl Разберем по "пайпам" (палочкам). вначале выведем список процессов и сколько памяти они скушали. потом awk магия поможет нам сделать "group by". Это нужно потому, что некоторые процессы (например, хром) любят разбиваться на сотни мелких процессов. И вроде память не кушают, а памяти нет. Также awk преобразует это в мегабайты потом sort все нам красиво отсортирует по колонке с памятью. head отберет 10 толстых и nl добавит счетчик. Последний шаг. Хочется, чтобы команда top10 была доступна. Воспользуемся псевдонимом (алиасом): alias top10='ps -e -o rss,command | awk '"'"'{arr[$2]+=$1}END {for (i in arr) print i"\t"arr[i]/1024"Mb"}'"'"' | sort -k 2 -n -r | head | nl' Теперь в эмуляторе терминале доступна команда top10, но после перезапуска эмулятора терминала, она пропадет. Для того, чтобы она не пропадала, нужно добавить наш новый алиас в конфигурационный файл вашей оболочки (bash, zsh, fish и т.д.) и обновить его (в зависимости от вашей оболочки), например: source .bashrc или source .zshrc.

Ответ 2



Используйте следующую команду: ps aux --sort -rss Здесь вы можете узнать больше об использовании памяти в Linux

Ответ 3



Если вас интересует сколько памяти освободится, если убить процесс, то вам нужна величина USS ("Unique Set Size"), а не RSS ("Resident Set Size"), показываемый ps/top. USS может выводить smem утилита: smem --sort=uss --reverse --abbreviate --columns="name uss" --no-header | head | nl Пример вывода: 1 thunderbird 356.6M 2 compiz 343.2M 3 firefox 318.6M 4 emacs 279.5M 5 calibre 158.1M 6 yandex_browser 154.0M 7 chromium-browse 150.5M 8 dropbox 125.4M 9 yandex_browser 125.4M 10 yandex_browser 92.1M

Ответ 4



ps axo pid,rss,cmd --sort=-rss | head -n 11 | tail -n +2 "-" перед rss, отсортирует по убыванию; -n 11 потому что выведет шапку первой строкой и только потом 10 процессов -n +2 чтобы вывести со второй строки

Комментариев нет:

Отправить комментарий