люди!
Я хочу проверить свои журналы ЦП непрерывно. Я использовал команды htop и вершина. Но я просто проверяю их во время моделирований.
Теперь я хочу выполнить реальный РОБОТ в течение приблизительно 2 часов (мой ноутбук был бы на РОБОТЕ при перемещении).
2ndly я также проверил GPU (видеокарта AMD) производительность. Но как я могу сделать файл журнала?
Можно выбрать другую статистику для входа:
Для пользы простоты я буду основывать этот ответ с помощью среднего коэффициента загрузки, подобного ответу в: Как зарегистрировать загрузку ЦП?
Вам будет нужен сценарий удара для цикличного выполнения 7 200 секунд (2 часа), который был бы похож на это:
#!/bin/bash
for ((i=0; i<7200; i++))
do
uptime >> /home/user/cpuload.log
sleep 1
done
Для рассмотрения вывода используют команду:
$ cat cpuload.log
20:04:06 up 2 days, 14 min, 1 user, load average: 1.39, 1.12, 0.95
Среднее число загрузки сообщает о трех переменных - последняя минута, прошлые пять минут и прошлые пятнадцать минут. Поскольку польза простоты только рассматривает последнее среднее число загрузки, о котором сообщают каждую секунду в нашем цикле.
Можно импортировать файл cpuload.log
в электронную таблицу и график точки данных за эти два часа или просто прокручивают по данным. Я использую Office Libre Calc, но все современные электронные таблицы могут импортировать файл.
В примере выше одной мелкой загрузки среднее число 1.39
. Это кажется опасно высоким потому что что-либо .70
заслуживает расследования и 1.00
средство там является узким местом, и процессы не подаются и должны ожидать.
Однако в Вашей электронной таблице необходимо будет разделить среднее число загрузки на количество центральных процессоров, которые Вы имеете. Для быстрого нахождения этого используют команду:
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
2074968
2133093
2094750
1863843
1728562
1855875
1849125
1778156
Это показывает, что существует 8 центральных процессоров (это - четырехъядерный гиперпоточный Intel i-7 3630QM ноутбук ЦП рабочие от 1 200 МГц до 3 400 МГц). В этом снимке CPU#1 (названный CPU0 внутренне) работает в 2,0749.68 Mhz
и CPU#8 работает в 1,7781.56 Mhz
. Но я отступаю, важная вещь состоит в том, чтобы рассчитать, сколько там - центральные процессоры, который равняется 8.
Поэтому разделите среднее число загрузки 1.39
8 и среднее число загрузки TRUE 0.17
который является очень респектабельным. Еще раз любое значение 0.70
заслуживает расследования и когда оно совершает нападки 1.00
Ваша система останавливается. Можно читать далее здесь
top
команда для наблюдения лучших 10 процессовИспользовать top
команда для наблюдения 10 большинство интенсивно использующих ресурсы процессов использует эту команду вместо uptime
команда:
top -n 1 -b | head -n 17 | tail -n 10 >> /home/user/top10.log
Файл /home/user/top10.log
будет выглядеть примерно так (повторяемый каждую секунду в течение двух часов):
$ top -n 1 -b | head -n 17 | tail -n 10
6170 rick 20 0 1437432 537000 126060 S 62.5 6.7 8:50.24 chrome
2466 rick 20 0 1210040 140568 61864 S 6.2 1.8 22:16.88 compiz
4111 rick 20 0 742396 248724 185820 S 6.2 3.1 36:26.68 chrome
6280 rick 20 0 41800 3668 3124 R 6.2 0.0 0:00.01 top
10096 root 20 0 0 0 0 S 6.2 0.0 0:00.47 kworker/0:2
1 root 20 0 120064 6244 4000 S 0.0 0.1 0:02.23 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.05 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:01.31 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
7 root 20 0 0 0 0 S 0.0 0.0 1:39.28 rcu_sched
Примечание: замена user
с Вашим фактическим именем пользователя.
top
команда для получения нас, sy, идентификатора и СИ значения ЦППодобный первому разделу, создайте сценарий удара для цикличного выполнения 7 200 секунд:
#!/bin/bash
# NAME: ~/bin/cpu-top-summary
# DATE: June 13, 2017
# DESC: Call `top` command every second to obtain CPU(s) stats for
# us, sy, ni, id, wa, hi, si, and st. Log to /tmp/top-cpu-summary.log
# with time stamp in hh:mm:ss 24 hour format.
# PARM: $1 number of seconds to run, ie 2 hours = 7200
now="$(date +'%d/%m/%Y')"
printf "top CPU(s) summary for %s\n" "$now" > /tmp/top-cpu-summary.log
for ((i=0; i<$1; i++))
do
TimeStamp=`date +"%H:%M:%S"`
printf "$TimeStamp - " >> /tmp/top-cpu-summary.log
top -n 1 -b | head -n 3 | tail -n 1 >> /tmp/top-cpu-summary.log
sleep 1
done
Когда Вы называете использование сценария удара top-cpu-summary 10
Вы видите вывод в течение 10 секунд с помощью:
$ cat /tmp/top*
top CPU(s) summary for 13/06/2017
19:17:34 - %Cpu(s): 25.0 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:35 - %Cpu(s): 25.0 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:36 - %Cpu(s): 25.0 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:37 - %Cpu(s): 25.0 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:38 - %Cpu(s): 25.0 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:39 - %Cpu(s): 25.0 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:41 - %Cpu(s): 25.0 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:42 - %Cpu(s): 24.9 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:43 - %Cpu(s): 24.9 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
19:17:44 - %Cpu(s): 24.9 us, 9.2 sy, 0.0 ni, 65.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
Вместо того, чтобы писать сценарии самостоятельно, Вы могли использовать collectl и возможно объединить это с графит и grafana для визуализации результатов.
С collectl веб-сайта:
существуют неоднократно, в котором Вам нужны данные о производительности. Они могут включать сравнительное тестирование, контроль общей пустоши системы или попытку определить то, что Ваша система делала в некоторое время в прошлом. В зависимости от того, что Вы делаете, Вы часто заканчиваете тем, что использовали различные инструменты, каждый разработанный к для той определенной ситуации.
В отличие от большинства контрольных инструментов, что любое внимание на маленький набор статистики, отформатируйте их вывод только одним способом, работайте или в интерактивном режиме или как демон, но не оба, collectl пытается сделать все это. Можно принять решение контролировать любой широкий набор подсистем, которые в настоящее время включают buddyinfo, CPU, диск, inodes, infiniband, блеск, память, сеть, nfs, процессы, квадрики, плиты, сокеты и tcp.
Collectl производят, может также быть сохранен в прокручивающемся наборе журналов для более позднего воспроизведения или отображен в интерактивном режиме во множестве форматов. Если все, что не является достаточно, существует плагины, которые позволяют Вам сообщать о данных в альтернативных форматах или даже отправлять их по сокету к удаленным инструментам, таким как ганглии или графит. Можно даже создать файлы в разделенном пробелом формате для графического изображения с внешними пакетами как gnuplot.