Я хочу изобразить график (графический вывод, например, файл .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