Средняя загрузка ЦП + как получить среднюю загрузку ЦП за историю X часов

Мне нужно было поставить -тип f в конце команды поиска, но перед printf. Стало:

find / -mindepth 1 -path /exclude1 -prune -o -path /exclude2 -prune -o -type f -printf '%p %Cs %s\n'
1
10.09.2019, 14:56
1 ответ

Для этого потребуется установить дополнительное программное обеспечение. Вы можете использовать sar(, см.https://linux.die.net/man/1/sar)или систему мониторинга -по вашему выбору.

sar -qбудет сообщать о средних нагрузках (среди прочего...)

$ sar -q 1 5
Linux 4.9.0-9-amd64 (sds-ulm-edv-553-workstation)   09/10/2019  _x86_64_    (2 CPU)

02:04:43 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
02:04:44 PM         0       158      0.00      0.02      0.10         0
02:04:45 PM         0       158      0.00      0.02      0.10         0
02:04:46 PM         0       158      0.00      0.02      0.10         0
02:04:47 PM         0       158      0.00      0.02      0.10         0
02:04:48 PM         0       158      0.00      0.02      0.10         0
Average:            0       158      0.00      0.02      0.10         0

Последняя строка Average:здесь, наверное, интересна?

Вы можете передать файл этому :sar -q -f /var/log/sa/fileofyourchoice, а затем продолжить обработку столбцов 4 -6 вывода.

Чтобы получить краткий обзор того, «что здесь произошло?», вам, вероятно, понадобится какое-то графическое представление.К сожалению, я понятия не имею, как передатьsar-outout через GNUplot (или передать его графане... )или тому подобному, чтобы сгенерировать что-то полезное.

Хорошо, это меня пощекотало:-)

Создать файл данных...

LANG=C sar -q 1 250 | grep ':' | awk '{ print $1,$4,$5,$6 }' | sed '1d;$d' > datafile.txt

Найдите максимальные значения:

$ datamash -t ' ' max 2 max 3 max 4 < datafile.txt 
2.53 1.55 1.1
$ head -1 datafile.txt | cut -d' ' -f1
20:20:53
$ tail -1 datafile.txt | cut -d' ' -f1
20:25:02

Теперь создайте файл plotting, где вам понадобятся эти значения для xrangeи yrange:

.
$ cat plotting 
set title "Load over time"
set xdata time
set style data lines
set term png
set timefmt "%H:%M:%S"
set format x "%H:%M:%S"
set xlabel "Time"
set ylabel "Load"
set autoscale y
set xrange ['20:20:53':'20:25:02']
set yrange ['-0.01':'2.6']
set xtics rotate
set output "load_over_time.png"
plot "datafile.txt" using 1:2 t "loadavg-1" w lines, "datafile.txt" using 1:3 t "loadavg-5" w lines, "datafile.txt" using 1:4 t "loadavg-15" w lines

Теперь вы можете создать графику с помощью $ gnuplot < plotting`

Теперь у вас есть график вload_over_time.png:

enter image description here

Если у вас есть система мониторинга -(, например. проверьте _mk )на месте, получить нужную историю намного проще.

7
27.01.2020, 23:22

Теги

Похожие вопросы