Как узнать процент использования памяти для определенного процесса и его дочерних процессов

TOTAL_RAM=`free | head -n 2 | tail -n 1 | awk '{ print $2 }'`; PROC_RSS=`ps axo rss,comm | grep [h]ttpd | awk '{ TOTAL += $1 } END { print TOTAL }'`; PROC_PCT=`echo "scale=4; ( $PROC_RSS/$TOTAL_RAM ) * 100" | bc`; echo "RAM Used by HTTP: $PROC_PCT%"


Команда вычисляет процент использования памяти для определенного процесса и его дочерних процессов.

free — команда выводит информацию о использовании памяти системой.
head -n 2 — выводит первые две строки вывода команды free.
tail -n 1 — выводит последнюю строку из двух строк.
awk '{ print $2 }' — извлекает значение второго столбца из строки.
ps axo rss,comm — команда выводит информацию о потреблении памяти процессами.
grep [h]ttpd — фильтрует строки, содержащие «httpd».
awk '{ TOTAL += $1 } END { print TOTAL }' — суммирует значения первого столбца и выводит их.
echo "scale=4; ( $PROC_RSS/$TOTAL_RAM ) * 100" | bc — вычисляет процентное соотношение использования памяти.
echo "RAM Used by HTTP: $PROC_PCT%" — выводит результат в формате «RAM Used by HTTP: X%».

Альтернативой может быть использование утилиты top с опцией -p для отслеживания использования памяти определенным процессом.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *