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

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

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

Ну от і все.

Advertisements

Written by bunyk

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

Оприлюднено в Кодерство

Tagged with

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

Subscribe to comments with RSS.

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

    patlatus

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


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: