как сохранить журналы ЦП или значения использования GPU?

люди!

Я хочу проверить свои журналы ЦП непрерывно. Я использовал команды htop и вершина. Но я просто проверяю их во время моделирований.

Теперь я хочу выполнить реальный РОБОТ в течение приблизительно 2 часов (мой ноутбук был бы на РОБОТЕ при перемещении).

Таким образом, Как я могу сохранить все записи в файле журнала так, чтобы я получил доступ к нему позже?

2ndly я также проверил GPU (видеокарта AMD) производительность. Но как я могу сделать файл журнала?

2
задан 10 June 2017 в 03:33

2 ответа

Сначала решите, какую статистику ЦП Вы хотите зарегистрировать

Можно выбрать другую статистику для входа:

  • Скорость ЦП (частота в Mhz или Ghz)
  • Процент загрузки ЦП
  • Температура ЦП
  • Средний коэффициент загрузки ЦП
  • Далее эта статистика может быть сегментирована для каждого ЦП, т.е. № 1 к № 8 для четырехъядерного гиперпоточного ЦП.

Для пользы простоты я буду основывать этот ответ с помощью среднего коэффициента загрузки, подобного ответу в: Как зарегистрировать загрузку ЦП?

Создайте цикл в течение двух часов, регистрируясь каждую секунду

Вам будет нужен сценарий удара для цикличного выполнения 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
2
ответ дан 2 December 2019 в 02:46

Вместо того, чтобы писать сценарии самостоятельно, Вы могли использовать collectl и возможно объединить это с графит и grafana для визуализации результатов.

С collectl веб-сайта:

существуют неоднократно, в котором Вам нужны данные о производительности. Они могут включать сравнительное тестирование, контроль общей пустоши системы или попытку определить то, что Ваша система делала в некоторое время в прошлом. В зависимости от того, что Вы делаете, Вы часто заканчиваете тем, что использовали различные инструменты, каждый разработанный к для той определенной ситуации.

В отличие от большинства контрольных инструментов, что любое внимание на маленький набор статистики, отформатируйте их вывод только одним способом, работайте или в интерактивном режиме или как демон, но не оба, collectl пытается сделать все это. Можно принять решение контролировать любой широкий набор подсистем, которые в настоящее время включают buddyinfo, CPU, диск, inodes, infiniband, блеск, память, сеть, nfs, процессы, квадрики, плиты, сокеты и tcp.

Collectl производят, может также быть сохранен в прокручивающемся наборе журналов для более позднего воспроизведения или отображен в интерактивном режиме во множестве форматов. Если все, что не является достаточно, существует плагины, которые позволяют Вам сообщать о данных в альтернативных форматах или даже отправлять их по сокету к удаленным инструментам, таким как ганглии или графит. Можно даже создать файлы в разделенном пробелом формате для графического изображения с внешними пакетами как gnuplot.

1
ответ дан 2 December 2019 в 02:46

Другие вопросы по тегам:

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