Мониторинг производительности системы



CPU-USAGE ( -- %)
(CPU-USAGE) ( ms -- %)

Мониторит загрузку процессора в течение одной секунды, после чего кладет результат измерений (в процентах) на стек.

Пример:

#( test_cpuusage
\ раз в минуту выводим загрузку процессора на консоль
Action:
CPU-USAGE . ." %" CR
)#

Чтобы задать собственный интервал времени измерения загрузки процессора воспользуйтесь словом (CPU-USAGE) и укажите необходимый интервал в миллисекундах в качестве аргумента.

Пример:

#( test_cpuusage1
\ раз в минуту выводим загрузку процессора на консоль
Action:
\ измеряем загрузку в течение 10 секунд
10000 (CPU-USAGE) . ." %" CR
)#

Также вы можете изменить значение VALUE-переменной CpuMeasurementTime (значение по умолчанию - 1000 мс).

Пример:

#( test_cpuusage2
\ раз в минуту выводим загрузку процессора на консоль
Action:
CpuMeasurementTime		 \ кладем текущее значение на стек
5000 TO CpuMeasurementTime \ устанавливаем новое (5000 мс)
\ измеряем загрузку в течение 5 секунд
CPU-USAGE . ." %" CR
TO CpuMeasurementTime      \ возвращаем старое значение
)#

Эти слова работают только в WinNT/2000/XP.


IDLE: seconds

Возвращает флаг TRUE (-1), если время бездействия компьютера больше или равно указанного числа секунд. Компьютер считается бездействующим, когда пользователь не проявляет активности: не двигает/кликает мышкой и не нажимет клавиши на клавиатуре. Активность пользователя можно "эмулировать": см раздел "Эмуляция ввода с клавиатуры" и "Эмуляция движений мыши".

#( test_idle
\ компьютер бездействует в течение 10 минут
Rule: IDLE: 600
Action:
    MSG: "Пора работать!"
)# 

Чтобы получить доступ к счетчику idle time (времени простоя компьютера), воспользуйтесь словом GetIdleTime, которое кладет на стек время бездействия компьютера в миллисекундах.
Следует упомянуть, что счетчик инкрементируется только если в каком-то из заданий уже используется слово IDLE: или отсчет idle time инициирован принудительно:

<%
InitIdleHook
%>

#( test_idle1
RunOnce NoDel
Action:
    60 0 DO
    LOG: "log\idle.log" "Idle time: %GetIdleTime%"
    PAUSE: 1000
    LOOP
)# 

Операционная система накладывает некоторые ограничения на работу слова IDLE:. Пpи активном консольном окне (Command Prompt, FAR и т. д.) Windows "не замечает" действий юзеpа и счетчик idle time пpодолжает инкpементиpоваться, невзиpая на его (юзеpа) активность.
В Win9* пpи активном консольном окне игноpиpуется только ввод с клавиатуpы, а действия юзеpа с мышью обpабатываются коppектно. В Win2000 игноpиpуется и то и дpугое.


PROC-CPU-USAGE ( a u -- %)
(PROC-CPU-USAGE) ( a u ms -- %)

Мониторит загрузку процессора указанным процессом в течение одной секунды, после чего кладет результат измерений (в процентах) на стек. В качестве имени процесса используйте имя исполняемого файла. В случае отсутствия указанного процесса, слова PROC-CPU-USAGE/(PROC-CPU-USAGE) возвратят 0.

Пример:

#( test_proccpuusage
\ раз в минуту выводим на консоль
\ загрузку процессорa процессом 'notepad.exe'
Action:
S" notepad.exe" PROC-CPU-USAGE . ." %" CR
)#

Чтобы задать собственный интервал времени измерения загрузки процессора воспользуйтесь словом (PROC-CPU-USAGE) и укажите необходимый интервал в миллисекундах в качестве аргумента.

Пример:

#( test_proccpuusage1
\ раз в минуту выводим на консоль
\ загрузку процессорa процессом 'notepad.exe'
Action:
\ измеряем загрузку в течение 10 секунд
S" notepad.exe" 10000 (PROC-CPU-USAGE) . ." %" CR
)#

Также вы можете изменить значение VALUE-переменной CpuMeasurementTime (значение по умолчанию - 1000 мс).

Пример:

#( test_proccpuusage2
\ раз в минуту выводим на консоль
\ загрузку процессорa процессом 'notepad.exe'
Action:
CpuMeasurementTime		 \ кладем текущее значение на стек
5000 TO CpuMeasurementTime \ устанавливаем новое (5000 мс)
\ измеряем загрузку в течение 5 секунд
S" notepad.exe" PROC-CPU-USAGE . ." %" CR
TO CpuMeasurementTime      \ возвращаем старое значение
)#

Эти слова работают только в WinNT/2000/XP.


WatchCPUUsage: <CPUUsage%> <seconds>

Срабатывает, если загрузка процессора в течение указанного времени (в секундах) превышает заданную загрузку процессора (в процентах).

Пример:

#( test_watchcpuusage
WatchCPUUsage: 95 10
Action:
MSG: "Загрузка процессора уже в течение 10 секунд превышает 95%%"
)#

Это слово работает только в WinNT/2000/XP. Обратите также внимание, что для корректной работы этого слова вам нужно выставить переменную nncron.ini PerfMonitor в ON.


См. также: