Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Windows performance counters

with one comment

Публікується в рамках розгрібання чернеток. Тим хто не займається адмініструванням Windows буде зовсім не цікаво, проходьте далі…

Одного разу переді мною поставили задачу перевірити можливість отримання певних метрик загальною кількістю біля 200 штук для двох видів користувачів для трьох версій операційної системи. Я сміливо взявся за роботу, розваживши що якщо написати скрипт який в одному циклі проходиться по метриках, а в іншому – по хостах та користувачах, то це все можна зробити швидко. Але є одне але. 🙂 Точність оцінювання необхідного часу сильно падає якщо ти чогось не знаєш, і ще більше падає якщо ти не знаєш що ти чогось не знаєш.

Наприклад я довго не міг зрозуміти чому не працює:

PS C:\Users\Administrator\Documents> Get-Counter '\Disk Read Bytes/sec'
Get-Counter : The specified counter path could not be interpreted.
    + CategoryInfo          : InvalidResult: (:) [Get-Counter], Exception
    + FullyQualifiedErrorId : CounterApiError,Microsoft.PowerShell.Commands.GetCounterCommand

А виявилось що performance counter повинен мати формат:

[\\<ComputerName>]\<CounterSet>[(<Instance>)]\<CounterName>

, де необов’язковим є лише ComputerName та іноді Instance, і в мене воно просить уточнити якого диска читання я хочу отримати. Наприклад:

PS C:\Users\Administrator\Documents> Get-Counter '\LogicalDisk(*)\Disk Read Bytes/sec'

Timestamp                 CounterSamples                                                                                      
---------                 --------------                                                                                      
29.04.2014 20:01:15       \\win-dl46o26fd8h\logicaldisk(harddiskvolume1)\disk read bytes/sec :                                
                          0                                                                                                   
                                                                                                                              
                          \\win-dl46o26fd8h\logicaldisk(c:)\disk read bytes/sec :                                             
                          8209,39607393418                                                                                    
                                                                                                                              
                          \\win-dl46o26fd8h\logicaldisk(_total)\disk read bytes/sec :                                         
                          8209,39607393418     

І кількість таких проблем виправляється лише постійною освітою, тому нею й займемось.

Get-Counter

Основне варте уваги джерело інформації яке я зміг викопати – Microsoft Technet на жаль. Ну але там теж щось пишуть, хоча й занудно.

Виявляється, всі каунтери групуються в множини, і список цих множин можна отримати командою:

Get-Counter -ListSet * `
    | Sort-Object CounterSetName | Format-Table CounterSetName, Description -wrap

Отримаємо табличку подібну до:

CounterSetName     Description
--------------     -----------
LogicalDisk        The Logical Disk performance object consists of counters that monitor logi
                   cal partitions of a hard or fixed disk drives.  Performance Monitor identi
                   fies logical disks by their a drive letter, such as C.
...

PhysicalDisk       The Physical Disk performance object consists of counters that monitor har
                   d or fixed disk drive on a computer.  Disks are used to store file, progra
                   m, and paging data and are read to retrieve these items, and written to re
                   cord changes to them.  The values of physical disk counters are sums of th
                   e values of the logical disks (or partitions) into which they are divided.

Альтернативно, можна запустити програму perfmon, і подивитись множини каунтерів у діалозі їх додавання, як на фотографії:

Performance monitor

Performance monitor

Ну от і все.

Written by bunyk

21 Серпня, 2014 at 23:19

Опубліковано в Кодерство

Tagged with

Одна відповідь

Subscribe to comments with RSS.

  1. Я користувався програмою perfmon коли намагався пофіксати меморі ліки в веб проекті… помагало відстежити використання ресурсів і не звільнення пам’яті після закриття вікна браузера чи вкладки

    patlatus

    22 Серпня, 2014 at 22:10


Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.