Назад | Перейти на главную страницу

Графическое отображение использования ЦП для каждого пользователя на машине Linux

Я хочу изобразить график (графический вывод, например, файл .png) следующую ситуацию: у меня есть пользователи A, B и C. Я ограничиваю их ресурсы так, чтобы, когда все пользователи одновременно выполняли задачу с интенсивным использованием ЦП, эти процессы будут использовать 25%, 25% и 50% ЦП. Я знаю, что могу получить статистику в реальном времени, используя top но понятия не имею, что с ними делать. Я искал огромное top man, но не нашел много информации о выводе данных, которые можно было бы изобразить. В идеале график должен показывать интервал около 30 секунд. Есть идеи, как этого добиться?

В tload Команда представляет собой графическое представление средней загрузки системы через график ASCII. Эта команда может использоваться для отображения графика на терминале. Синтаксис команды:

tload [options] [terminal]

Если терминал не указан в качестве аргумента этой команды, то по умолчанию он выводит график на текущем терминале. Итак, самые простые формы этой команды:

$ tload

Я знаю, что могу получать статистику в реальном времени, используя top, но понятия не имею, что с ними делать

Пакетный режим может быть полезен:

   -b : Batch mode operation
        Starts  top  in ’Batch mode’, which could be useful for sending output from top to other programs or
        to a file.  In this mode, top will not accept input and runs until the iterations limit  you’ve  set
        with the ’-n’ command-line option or until killed.

Например:

$ top -b -n 1 -u <user> | awk 'NR > 7 { sum += $9 } END { print sum }'

Ganglia Gmetric можно использовать для построения графика.

cpu_per_user_gmetric.sh

#!/bin/bash
USERS="a b c"

for user in $USERS; do
    /usr/bin/gmetric --name CPU_per_"$user"_user --value `top -b -n 1 -u $user | awk 'NR>7 { sum += $9; } END { print sum; }'` --type uint8 --unit Percent
done

crontab -l

* * * * * /path/to/cpu_per_user_gmetric.sh

и вот результат:

Возможно, вы могли бы использовать collectd и адаптировать один из доступные плагины? Да, ни один из перечисленных не будет делать именно то, что вы хотите, но, с другой стороны, их довольно просто изменить, и я думаю, вы могли бы начать, например, с processes плагин и начинайте работать оттуда.

Пытаться sar и sadf для сбора и подготовки данных для удобного построения графиков. http://sebastien.godard.pagesperso-orange.fr/documentation.html