Завантаження процесора, nhutils

Як визначити в скрипті (або командному файлі) завантаження процесора у відсотках на платформі Windows? Це може бути корисним, наприклад, для виявлення підвищеного навантаження на сервер. Як і раніше, використовуємо WMI. Win32_PerfFormattedData_PerfOS_Processor class дозволяє вважати цю інформацію, на WSH/JScriptвизначення завантаження процесора реалізується наступним скриптом:

Цей скрипт виводить інформаціюза всіма процесорами (ядрами) комп'ютера (запускаємо як CSCRIPT //NOLOGO cpu_load_all.js ):

Цей висновок означає, що на комп'ютері є чотири процесори (ядра), у перших чотирьох рядках вказано завантаження для кожного з них (відповідно, 25%, 1%, 13% і 13%), і останній рядок міститьзагальне завантаження (13%).

Якщо нам потрібні значення по ядрах, треба обробляти перші рядки. Найчастіше достатньо лише загального відсотка завантаження процесора, для цього відфільтровуємо записи в запиті ( Name='_Total' ), відповідно, рядок для виведення буде один, і скрипт визначення завантаження процесора комп'ютера перетворюється на наступний вид:

Висновок CSCRIPT //NOLOGO cpu_load_total.js гранично простий:

Тобто. загальне завантаження CPU складає 23%.

Як можна розвинути скрипт:

  • можна додати перевірку значення, наприклад, якщо значення перевищує 85% ( e.item().PercentProcessorTime > 85 ), надіслати попередження адміністратору сервера.
  • підставляючи змінну computer_name мережні імена інших комп'ютерів, можна організувати моніторинг групи серверів щодо підвищеного навантаження з відповідним оповіщенням адміністратора.

Для завантаження процесора в CMD/BAT файлі можна запускати цей скрипт із CMD наступною командою:

зазчитування інформації про стан комп'ютера див. також: Отримати інформацію про диски

Ці та інші скрипти можна завантажити за посиланням