Мониторинг производительности системы
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.
Возвращает флаг 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.
См. также: