Если сравнить между собой внешний вид диспетчера задач в Windows 8 (8.1) и в Windows Server 2012 (R2) можно заметить одну интересную особенность — в серверной версии Task Manager-а не отображается информация о производительности/загрузке дисковой подсистемы. В то же время в десктопной редакции Windows 8 эта информация есть:
Внешний вид вкладки Perfomance диспетчера задач в Windows Server 2012
Внешний вид вкладки Perfomance в Task Managere Windows 8
Дело в том, что разработчики Windows решили убрать информацию cо счетчиков производительности дисковой подсистему из Task Manager, объясняя это высокой нагрузкой на дисковую подсистему, вызываемую эти счетчиком, а для мониторинга дисковой подсистемы рекомендуют использовать Resource Monitor.
Однако в Windows Server 2012 существует возможность включить отображение счетчиков производительности дисков в диспетчере задач. Сделать это можно командой:
diskperf -y
Перезапустите Task Manager и убедитесь, что на вкладке Perfomance появилась информация о скорости чтения/записи на диск (и).
Отключается функционал аналогично:
diskperf –n
One of the interesting things about having a home lab is you get to break things in ways that no one thought possible. I’ll give a nickle to the next person who has this happen to them.
I have three Exchange servers running Windows Server 2012 R2. Performance counters have been started on all three servers (see https://technet.microsoft.com/en-us/library/hh831394.aspx). One server had two IP addresses configured for one NIC so I could do some testing. When I removed the second IP address from the single NIC and restarted the server Server Manager complained that it could not refresh that server.
When I clicked Manageability in Server Manager it showed «Online — Cannot get performance counter data.» Re-adding the secondary IP and restarting the server doesn’t help.
Lots of troubleshooting later (involving Perfmon, Bing-fu, and swearing) I discovered the following fix:
- Open an elevated CMD prompt to C:\Windows
- Run lodctr /R to rebuild the perf registry strings and info from scratch based on the current registry settings and backup INI files. If this works, you’re done. In my case, it resulted with the error, «Error: Unable to rebuild performance counter setting from system backup store, error code is 2.» Very helpful.
- Change to the C:\Windows\SysWOW64 folder and run lodctr /R again. This time I got «Info: Successfully rebuilt performance counter setting from system backup store«
- Run winmgmt /resyncperf to register the system performance libraries with WMI and then refresh Server Manager to see that the problem is resolved.
One of the reasons I run this blog is to maintain a memory of esoteric things like this. I doubt I’ll ever see it again.
I was troubleshooting why my SQL Sentry instance was not pickuping anything from my last SQL Server crashed.
While trying to open up Performance Monitor on that box, I got the following error prompt:
Performance Counter ID Queries [PERFLIB]:
Base Index: 0x00000737 (1847)
Last Counter Text ID: 0x00004350 (17232)
Last Help Text ID: 0x00004351 (17233)
[.NET CLR Data] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001900 (6400)
Last Counter ID: 0x0000190C (6412)
First Help ID: 0x00001901 (6401)
Last Help ID: 0x0000190D (6413)
[.NET CLR Networking] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x0000191E (6430)
Last Counter ID: 0x00001928 (6440)
First Help ID: 0x0000191F (6431)
Last Help ID: 0x00001929 (6441)
[.NET CLR Networking 4.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x0000192A (6442)
Last Counter ID: 0x00001944 (6468)
First Help ID: 0x0000192B (6443)
Last Help ID: 0x00001945 (6469)
[.NET CSM Apps] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x0000253E (9534)
Last Counter ID: 0x00002550 (9552)
First Help ID: 0x0000253F (9535)
Last Help ID: 0x00002551 (9553)
[.NET CSM Collector] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00002566 (9574)
Last Counter ID: 0x00002574 (9588)
First Help ID: 0x00002567 (9575)
Last Help ID: 0x00002575 (9589)
[.NET CSM Statistic] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00002552 (9554)
Last Counter ID: 0x00002564 (9572)
First Help ID: 0x00002553 (9555)
Last Help ID: 0x00002565 (9573)
[.NET Data Provider for Oracle] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x0000151E (5406)
Last Counter ID: 0x0000153A (5434)
First Help ID: 0x0000151F (5407)
Last Help ID: 0x0000153B (5435)
[.NET Data Provider for SqlServer] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x000018E2 (6370)
Last Counter ID: 0x000018FE (6398)
First Help ID: 0x000018E3 (6371)
Last Help ID: 0x000018FF (6399)
[.NET Memory Cache 4.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
[.NET Statistic] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x0000252A (9514)
Last Counter ID: 0x0000253C (9532)
First Help ID: 0x0000252B (9515)
Last Help ID: 0x0000253D (9533)
[.NETFramework] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\mscoree.dll
Open Procedure: OpenCtrs
Collect Procedure: CollectCtrs
Close Procedure: CloseCtrs
First Counter ID: 0x0000153C (5436)
Last Counter ID: 0x000015EA (5610)
First Help ID: 0x0000153D (5437)
Last Help ID: 0x000015EB (5611)
[BITS] Performance Counters (Enabled)
DLL Name: C:\Windows\System32\bitsperf.dll
Open Procedure: PerfMon_Open
Collect Procedure: PerfMon_Collect
Close Procedure: PerfMon_Close
First Counter ID: 0x00001276 (4726)
Last Counter ID: 0x00001286 (4742)
First Help ID: 0x00001277 (4727)
Last Help ID: 0x00001287 (4743)
[CcmFramework] Performance Counters (Enabled)
DLL Name: FrameworkPerf.dll
Open Procedure: CcmFramework_OpenPerformanceData
Collect Procedure: CcmFramework_CollectPerformanceData
Close Procedure: CcmFramework_ClosePerformanceData
First Counter ID: 0x0000322A (12842)
Last Counter ID: 0x00003240 (12864)
First Help ID: 0x0000322B (12843)
Last Help ID: 0x00003241 (12865)
[DTSPipeline110] Performance Counters (Enabled)
DLL Name: DTSPipelinePerf110.dll
Open Procedure: PrfData_Open
Collect Procedure: PrfData_Collect
Close Procedure: PrfData_Close
First Counter ID: 0x00001BF2 (7154)
Last Counter ID: 0x00001C0A (7178)
First Help ID: 0x00001BF3 (7155)
Last Help ID: 0x00001C0B (7179)
[ESENT] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\esentprf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x000009A4 (2468)
Last Counter ID: 0x00001068 (4200)
First Help ID: 0x000009A5 (2469)
Last Help ID: 0x00001069 (4201)
[HealthService] Performance Counters (Enabled)
DLL Name: C:\Program Files\Microsoft Monitoring Agent\Agent\HealthServicePerformance.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x0000245C (9308)
Last Counter ID: 0x000024BE (9406)
First Help ID: 0x0000245D (9309)
Last Help ID: 0x000024BF (9407)
[Intercept CSM Filters] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00002596 (9622)
Last Counter ID: 0x00002598 (9624)
First Help ID: 0x00002597 (9623)
Last Help ID: 0x00002599 (9625)
[Intercept Injector] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00002576 (9590)
Last Counter ID: 0x0000258C (9612)
First Help ID: 0x00002577 (9591)
Last Help ID: 0x0000258D (9613)
[Intercept SyncAction Processing] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x0000258E (9614)
Last Counter ID: 0x00002594 (9620)
First Help ID: 0x0000258F (9615)
Last Help ID: 0x00002595 (9621)
[InterceptCountersManager] Performance Counters (Enabled)
DLL Name: C:\Windows\system32\InterceptCounters.dll
Open Procedure: OpenPerfMon
Collect Procedure: CollectPerfMon
Close Procedure: ClosePerfMon
First Counter ID: 0x000024E2 (9442)
Last Counter ID: 0x00002528 (9512)
First Help ID: 0x000024E3 (9443)
Last Help ID: 0x00002529 (9513)
[Lsa] Performance Counters (Enabled)
DLL Name: C:\Windows\System32\Secur32.dll
Open Procedure: OpenLsaPerformanceData
Collect Procedure: CollectLsaPerformanceData
Close Procedure: CloseLsaPerformanceData
[MOMConnector] Performance Counters (Enabled)
DLL Name: C:\Program Files\Microsoft Monitoring Agent\Agent\MOMConnectorPerformance.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x000024C0 (9408)
Last Counter ID: 0x000024E0 (9440)
First Help ID: 0x000024C1 (9409)
Last Help ID: 0x000024E1 (9441)
[MSDTC] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\msdtcuiu.DLL
Open Procedure: DtcPerfOpen
Collect Procedure: DtcPerfCollect
Close Procedure: DtcPerfClose
First Counter ID: 0x00001388 (5000)
Last Counter ID: 0x000013A2 (5026)
First Help ID: 0x00001389 (5001)
Last Help ID: 0x000013A3 (5027)
[MSDTC Bridge 3.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001BAE (7086)
Last Counter ID: 0x00001BC4 (7108)
First Help ID: 0x00001BAF (7087)
Last Help ID: 0x00001BC5 (7109)
[MSDTC Bridge 4.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\NETFXPerf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x000017A2 (6050)
Last Counter ID: 0x000017B8 (6072)
First Help ID: 0x000017A3 (6051)
Last Help ID: 0x000017B9 (6073)
[MsDtsServer110] Performance Counters (Enabled)
DLL Name: netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001BEE (7150)
Last Counter ID: 0x00001BF0 (7152)
First Help ID: 0x00001BEF (7151)
Last Help ID: 0x00001BF1 (7153)
[MSSQLSERVER] Performance Counters (Enabled)
DLL Name: perf-MSSQLSERVER-sqlctr11.3.6020.0.dll
Open Procedure: OpenSQLPerformanceData
Collect Procedure: CollectSQLPerformanceData
Close Procedure: CloseSQLPerformanceData
First Counter ID: 0x00002CE6 (11494)
Last Counter ID: 0x0000315E (12638)
First Help ID: 0x00002CE7 (11495)
Last Help ID: 0x0000315F (12639)
[PerfDisk] Performance Counters (Enabled)
DLL Name: %SystemRoot%\System32\perfdisk.dll
Open Procedure: OpenDiskObject
Collect Procedure: CollectDiskObjectData
Close Procedure: CloseDiskObject
[PerfNet] Performance Counters (Enabled)
DLL Name: %SystemRoot%\System32\perfnet.dll
Open Procedure: OpenNetSvcsObject
Collect Procedure: CollectNetSvcsObjectData
Close Procedure: CloseNetSvcsObject
[PerfOS] Performance Counters (Enabled)
DLL Name: %SystemRoot%\System32\perfos.dll
Open Procedure: OpenOSObject
Collect Procedure: CollectOSObjectData
Close Procedure: CloseOSObject
[PerfProc] Performance Counters (Enabled)
DLL Name: %SystemRoot%\System32\perfproc.dll
Open Procedure: OpenSysProcessObject
Collect Procedure: CollectSysProcessObjectData
Close Procedure: CloseSysProcessObject
[RemoteAccess] Performance Counters (Enabled)
DLL Name: C:\Windows\System32\rasctrs.dll
Open Procedure: OpenRasPerformanceData
Collect Procedure: CollectRasPerformanceData
Close Procedure: CloseRasPerformanceData
First Counter ID: 0x00001288 (4744)
Last Counter ID: 0x000012AE (4782)
First Help ID: 0x00001289 (4745)
Last Help ID: 0x000012AF (4783)
[ServiceModelEndpoint 3.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001BC6 (7110)
Last Counter ID: 0x00001BEC (7148)
First Help ID: 0x00001BC7 (7111)
Last Help ID: 0x00001BED (7149)
[ServiceModelOperation 3.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001B8E (7054)
Last Counter ID: 0x00001BAC (7084)
First Help ID: 0x00001B8F (7055)
Last Help ID: 0x00001BAD (7085)
[ServiceModelService 3.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001B4A (6986)
Last Counter ID: 0x00001B8C (7052)
First Help ID: 0x00001B4B (6987)
Last Help ID: 0x00001B8D (7053)
[SMSvcHost 3.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001B2C (6956)
Last Counter ID: 0x00001B48 (6984)
First Help ID: 0x00001B2D (6957)
Last Help ID: 0x00001B49 (6985)
[SMSvcHost 4.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\NETFXPerf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x000018C4 (6340)
Last Counter ID: 0x000018E0 (6368)
First Help ID: 0x000018C5 (6341)
Last Help ID: 0x000018E1 (6369)
[Spooler] Performance Counters (Enabled)
DLL Name: C:\Windows\System32\winspool.drv
Open Procedure: PerfOpen
Collect Procedure: PerfCollect
Close Procedure: PerfClose
[SQLSERVERAGENT] Performance Counters (Enabled)
DLL Name: perf-MSSQL11.MSSQLSERVER-sqlagtctr.dll
Open Procedure: OpenSQLPerformanceData
Collect Procedure: CollectSQLPerformanceData
Close Procedure: CloseSQLPerformanceData
First Counter ID: 0x00003160 (12640)
Last Counter ID: 0x00003180 (12672)
First Help ID: 0x00003161 (12641)
Last Help ID: 0x00003181 (12673)
[TapiSrv] Performance Counters (Enabled)
DLL Name: %SystemRoot%\System32\tapiperf.dll
Open Procedure: OpenTapiPerformanceData
Collect Procedure: CollectTapiPerformanceData
Close Procedure: CloseTapiPerformanceData
First Counter ID: 0x00000988 (2440)
Last Counter ID: 0x0000099A (2458)
First Help ID: 0x00000989 (2441)
Last Help ID: 0x0000099B (2459)
[Tcpip] Performance Counters (Enabled)
DLL Name: %SystemRoot%\System32\Perfctrs.dll
Open Procedure: OpenTcpIpPerformanceData
Collect Procedure: CollectTcpIpPerformanceData
Close Procedure: CloseTcpIpPerformanceData
[TermService] Performance Counters (Enabled)
DLL Name: C:\Windows\System32\perfts.dll
Open Procedure: OpenTSObject
Collect Procedure: CollectTSObjectData
Close Procedure: CloseTSObject
First Counter ID: 0x00001112 (4370)
Last Counter ID: 0x00001112 (4370)
First Help ID: 0x00001113 (4371)
Last Help ID: 0x00001113 (4371)
[usbhub] Performance Counters (Enabled)
DLL Name: %SystemRoot%\system32\usbperf.dll
Open Procedure: OpenUsbPerformanceData
Collect Procedure: CollectUsbPerformanceData
Close Procedure: CloseUsbPerformanceData
First Counter ID: 0x000013A4 (5028)
Last Counter ID: 0x000013C6 (5062)
First Help ID: 0x000013A5 (5029)
Last Help ID: 0x000013C7 (5063)
[Windows Workflow Foundation 3.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\netfxperf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x00001B00 (6912)
Last Counter ID: 0x00001B2A (6954)
First Help ID: 0x00001B01 (6913)
Last Help ID: 0x00001B2B (6955)
[Windows Workflow Foundation 4.0.0.0] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\NETFXPerf.dll
Open Procedure: OpenPerformanceData
Collect Procedure: CollectPerformanceData
Close Procedure: ClosePerformanceData
First Counter ID: 0x000014B0 (5296)
Last Counter ID: 0x000014DA (5338)
First Help ID: 0x000014B1 (5297)
Last Help ID: 0x000014DB (5339)
[WmiApRpl] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\wbem\wmiaprpl.dll
Open Procedure: WmiOpenPerfData
Collect Procedure: WmiCollectPerfData
Close Procedure: WmiClosePerfData
First Counter ID: 0x000042AA (17066)
Last Counter ID: 0x00004350 (17232)
First Help ID: 0x000042AB (17067)
Last Help ID: 0x00004351 (17233)
** If you are not sure if there are some missing, you can validate with another servers that is running fine.
If your results is like mine, you can jump to Step2, if you have some Services disabled go down to the (Optional) section, I’ll go quickly over how to enable them.
You should get something like this as result:
Info: Successfully rebuilt performance counter setting from system backup store
To make them available, you will also need to use Command Prompt (cmd.exe) run as administrator.
Then, you will use the following command
If you want to get some syntax or switch information you can also use this command
Счетчик производительности в диспетчере задач Windows Server 2012 / R2
Если сравнить между собой внешний вид диспетчера задач в Windows 8 (8.1) и в Windows Server 2012 (R2) можно заметить одну интересную особенность — в серверной версии Task Manager-а не отображается информация о производительности/загрузке дисковой подсистемы. В то же время в десктопной редакции Windows 8 эта информация есть:
Внешний вид вкладки Perfomance диспетчера задач в Windows Server 2012
Внешний вид вкладки Perfomance в Task Managere Windows 8
Дело в том, что разработчики Windows решили убрать информацию cо счетчиков производительности дисковой подсистему из Task Manager, объясняя это высокой нагрузкой на дисковую подсистему, вызываемую эти счетчиком, а для мониторинга дисковой подсистемы рекомендуют использовать Resource Monitor.
Однако в Windows Server 2012 существует возможность включить отображение счетчиков производительности дисков в диспетчере задач. Сделать это можно командой:
Перезапустите Task Manager и убедитесь, что на вкладке Perfomance появилась информация о скорости чтения/записи на диск (и).
Отключается функционал аналогично:
Источник
Счетчики производительности не запущены
Если сравнить между собой внешний вид диспетчера задач в Windows 8 (8.1) и в Windows Server 2012 (R2) можно заметить одну интересную особенность — в серверной версии Task Manager-а не отображается информация о производительности/загрузке дисковой подсистемы. В то же время в десктопной редакции Windows 8 эта информация есть:
Внешний вид вкладки Perfomance диспетчера задач в Windows Server 2012
Внешний вид вкладки Perfomance в Task Managere Windows 8
Дело в том, что разработчики Windows решили убрать информацию cо счетчиков производительности дисковой подсистему из Task Manager, объясняя это высокой нагрузкой на дисковую подсистему, вызываемую эти счетчиком, а для мониторинга дисковой подсистемы рекомендуют использовать Resource Monitor.
Однако в Windows Server 2012 существует возможность включить отображение счетчиков производительности дисков в диспетчере задач. Сделать это можно командой:
Перезапустите Task Manager и убедитесь, что на вкладке Perfomance появилась информация о скорости чтения/записи на диск (и).
Отключается функционал аналогично:
Блог о компьютерах, операционных системах и программном обеспечении
среда, 3 декабря 2014 г.
Ошибка «Не удается получить данные счетчиков производительности» в диспетчере серверов
- Запустить Системный монитор (perfmon.exe), затем развернуть меню Группы сборщиков данных, а после этого Особый и найти группу Server Manager Performance Monitor. Так как, скорей всего, она будет отсутствовать, переходим к следующему шагу.
- Переходим на сервер в котором счетчики производительности работают без проблем.
- Открываем Командную строку (cmd.exe) с правами администратора и экспортируем группу сборщиков данных «Server Manager Performance Monitor» используя команду:
logman export -n «Server Manager Performance Monitor» -xml SMPM.xml - Открываем полученный файл SMPM.xml в Wordpad и полностью удаляем секцию Список различных ID , а затем сохраняем файл.
- Переносим файл SMPM.xml на неработающий сервер. Там же открываем Командную строку (cmd.exe) с правами администратора и импортируем вышеуказанный XML файл:
logman import -n «Server Manager Performance Monitor» -xml SMPM.xml
Запускаем счетчики производительности:
logman start «Server Manager Performance Monitor»
После обновления Диспетчера серверов данные производительности станут доступны.
В своем первом посте я хотел бы поделитьcя опытом использования такой утилиты как logman, с помощью которой можно собирать информацию о потреблении ресурсов (и не только) приложением под Windows.
В один из дней на работе была поставлена задача снятия метрик производительности для одного приложения под Windows. Главным условием было использовать по минимуму какие-либо сторонние утилиты, и так как опыта в подобных вещах у меня к тому времени не было, немного покопавшись, выбор пал на logman. Особой точности не требовалось и надо было лишь понять характер потребления ресурсов приложением, для чего logman с первого взгляда вполне подходил.
Итак, перейдем непосредственно к сути поста.
Многие из вас скорее всего в работе или для домашних нужд использовали нативную Windows утилиту Performance monitor (perfmon). Так вот logman — это грубо говоря command line представление perfmon’а. Он позволяет создавать, запускать, останавливать счетчики производителности, писать результат во внешние файлы и много чего еще. Мне был необходим только базовый функционал, который я и опишу ниже.
Небольшое замечание: для выполнения нижеследующих операций необходимо обладать правами администратора, иначе может вылететь такая ошибка.
Просмотр созданных и запущенных счетчиков
Посмотреть список сборщиков данных можно командой logman
В результате чего будет получен примерно такой вывод:
Создание счетчика производительности
Для создания счетчика я использовал следующую команду (с полным списком опций можно ознакомиться в официальной документации.):
- counter_name — имя счетчика. Может быть любым, например «explorer_cpu»
- -f — формат файла с результатами измерений
- –v — эта опция подавляет вывод версии в выходном файле
- -si — интервал. с которым будут записываться измерения
- -o — файл с результатами измерений
- -c — идентификатор счетчика производительности
Остановимся подробнее на последней опции. Чтобы понять, что вписывать в поле «counter», можно проследовать в perfmon, создать группу сборщиков данных и выбрать «Создать -> Сборщик данных». Далее выбрать «Добавить счетчик» и в появившемся окне найти интересующий нас тип счетчика.
Меня интересовало потребление cpu и памяти конкретным процессом, поэтому я использовал для измерений следующие счетчики (в расчете CPU мне помог следующий пост):
- «Processor(_Total)\% User time» — процент CPU в пользовательском режиме
- «Process(application_name)\% Processor time» — доля CPU приложения от пользовательского режима
- «Process(application_name)Working Set» — использование оперативной памяти процессом
Процент потребления CPU процессом можно расчитать как («Processor(_Total)\% User time» * «Process(application_name)\% Processor time») / (количество_процессоров * 100)
Счетчики можно записывать через пробел, тогда в выходном файле значения будут каждый в своем столбце.
В итоге приведу пример готовой команды для создания счетчика:
Запуск и остановка счетчика
Выполняются соответствующими командами:
Удаление счетчика
Удалить счетчик можно следующей командой (он обязательно должен быть перед этим остановлен):
Прежде чем перейти к коду, хотелось бы рассказать о небольшой (хотя для меня она стала довольно существенной) проблеме, которая возникла в ходе сбора метрик.
Так как собирать данные предполагалось за довольно небольшой промежуток времени (5-15 секунд), то стало понятно, что интервал сбора в 1 с (задаваемый через опцию «-si») слишком большой. Поискав на просторах интернета и в оф. документации, мне не удалось найти способ, которым этот интервал можно было уменьшить, а количество получаемых точек на графике очень хотелось увеличить. Немного поразмыслив, я решил пойти от противного — если нельзя уменьшить интервал, то можно увеличить количетство счетчиков. Таким образом, запуская подряд несколько сборщиков с интервалом в 100-500 миллисекунд, можно получить за одну секунду сколько нужно данных.
Процесс сбора данных должен был быть интегрирован в существующий автоматический тест и в конечном была написана небольшая вспомогательная обертка для выполения всех вышеуказанных действий.
Ниже представлен исходный код модуля, собирающий данные по CPU и оперативной памяти для указанного приложения с требуемой точностью.
Источник
Счетчики производительности. Часть 1
Производительность компьютера определяется скоростью, с которой компьютер выполняет поставленные задачи. На общую производительность системы влияет много факторов — вычислительная мощность процессора, количество доступной оперативной памяти, скорость дисковой подсистемы, пропускная способность сетевых интерфейсов и т.д.
Иногда при недостаточной производительности может потребоваться проанализировать ситуацию и отследить использование ресурсов приложениями или системными процессами, чтобы затем увеличить мощность системы в соответствии с возрастающими запросами.
Одним из самых мощных инструментов для обнаружения проблем с производительностью в Windows являются встроенные счетчики производительности (Performance Counters). О них и пойдет речь в этой статье.
Performance Monitor
Основным инструментом для управления счетчиками производительности в Windows является оснастка Монитор производительности (Performance Monitor), в более ранних версиях Windows известная как Системный монитор. Performance Monitor имеет несколько режимов отображения и позволяет выводить показания счетчиков производительности в режиме реального времени, а также сохранять данные в лог-файлы для последующего изучения.
Найти Performance Monitor можно в меню Пуск (стартовый экран в Server 2012) в разделе Administrative tools, либо нажав Win+R и в окне «Run» выполнить команду perfmon.msc. Стоит иметь в виду, что не все пользователи имеют права на использование этой оснастки. Кроме членов группы Administrators, которые имеют полные права и могут пользоваться всеми ее возможностями, есть еще две группы:
• Пользователи системного монитора (Performance Monitor Users) — могут просматривать (локально или удаленно) данные монитора производительности и изменять свойства отображения в реальном времени. Не имеют прав на создание и изменение групп сборщиков данных (Data Collector Set);
• Пользователи журналов производительности (Performance Log Users) — имеют все права предыдущей группы, а также могут создавать и изменять группы сборщиков данных.
Ну а обычные пользователи, входящие в группу Users, могут только открывать лог-файлы для просмотра в мониторе производительности.
Важно. В соответствием с требованием инструментария управления Windows (WMI) группе Performance Log Users необходимо предоставить право входа в систему в качестве пакетного задания. Для этого надо открыть оснастку локальной политики безопасности (secpol.msc), в разделе «Local policies\User Rights Assignment» найти параметр Log on as batch job и добавить в список группу Performance Log Users.
Добавление счетчиков
Итак, первое что мы делаем, открыв Performance Monitor, это добавляем в окно мониторинга необходимые нам счетчики. По умолчанию в окне уже отображается один счетчик, показывающий общую загрузку процессора. Удалить ненужный счетчик можно, выделив его и нажав на красный крестик на панели инструментов, либо клавишей Delete. Для добавления счетчиков жмем зеленую кнопку либо Ctrl+N.
Открывается окно добавления счетчиков. В поле «Select counters from computer» задаем имя или IP-адрес компьютера, за которым будет вестись наблюдение. Кстати, Performance Monitor может отображать в одном окне счетчики с разных компьютеров.
Затем выбираем счетчики производительности из списка. Все счетчики объединены в группы, как правило содержащие в своем названии имя объекта производительности. Например, для мониторинга сетевой активности открываем группу Network Interface и выбираем счетчики, показывающие объем получаемого и передаваемого сетевого трафика, общий объем трафика и текущую пропускную способность.
Если вы сомневаетесь в назначении какого либо счетчика, то есть возможность посмотреть его описание. Для этого надо отметить чекбокс «Show description» в левом нижнем углу. Описание не очень подробное, но достаточно информативное.
Примечание. Количество счетчиков производительности довольно велико и зависит от версии операционной системы и установленых серверных ролей и компонентов. Так, например, в Windows Server 2012 добавлено большое количество счетчиков, предназначеных для мониторинга виртуальных машин. Кроме того, некоторые серверные продукты, такие как Exchange или SQL Server добавляют в систему собственные счетчики.
Выбрав объект мониторинга и выделив нужные счетчики, в поле «Instances of selected оbject» выбираем экземпляр (Instance) объекта. Так выбрав в качестве объекта сетевые интерфейсы, здесь мы указываем, за каким именно необходимо наблюдать. Можно выбрать один или несколько экземпляров, выбрав All Instance мы выведем данные для каждого экземпляра отдельно , а значение _Total выведет усредненное значение по всем экземплярам объекта.
Далее кнопкой «Add»добавляем выбранные счетчики в окно справа и сохраняем изменения кнопкой OK.
Вот так выглядит окно монитора производительности после добавления счетчиков. По умолчанию значения счетчиков производительности выводятся в виде линейного графика. Выбрав конкретный счетчик, можно посмотреть в панели текущее (last), минимальное (minimum), максимальное (maximum) и среднее (average) значения за указанный период времени.
Если одновременно используется большое число счетчиков, то следить за каждым из них может быть затруднительно. Поэтому при необходимости лишние счетчики лучше скрыть, для чего достаточно снять флажок в столбце Show.
Нажав соответствующую кнопку на панели инструментов, можно выбрать режим отображения в виде гистограммы (Histogram bar) или в виде отчета (Report). Также между режимами можно переключаться сочетанием клавиш Ctrl+G.
Так например, если необходимо постоянно отслеживать текущие значения счетчиков, то режим отчета более нагляден.
Как вариант, можно выделить конкретный счетчик, так чтобы он отражался более жирной линией. Для этого выбираем нужный счетчик и жмем на кнопку Highlight, расположенную в панели инструментов. Также для выделения можно воспользоваться сочетанием клавиш Ctrl+H.
Настройка Performance Monitor
Performance Monitor имеет множество настроек, предназначенных для наилучшего отображения данных. Открыть диалоговое окно настроек монитора производительности можно, кликнув на нем правой клавишей мышки и выбрав пункт Properties, либо нажав на неприметную кнопку в панели инструментов, либо нажав Ctrl+Q.
На вкладке General можно:
• Display Elements — удалить\добавить элементы, отображаемые в окне Performance Monitor;
• Report and Histogramm Data — изменить значения, отображаемые в режиме отчета и гистограммы. По умолчанию в них отображаются текущие значения счетчиков. Можно указать минимальное, максимальное или среднее значение, при этом отображаемые данные будут каждый раз пересчитываться;
• Sample Automaticaly — автоматический съем данных. По дефолту выборка данных производится автоматически, с заданным интервалом. Убрав галку, мы тем самым включим ручной режим, в котором снятие данных осуществляется кнопкой Update Data на панели инструментов, или сочетанием клавиш Ctrl+U. Также переключаться с ручного режима на автоматический и обратно можно клавишами Ctrl+F;
• Graph elements — элементы диаграммы. В поле Sample Every задается интервал обновления данных в автоматическом режиме, а в поле Duration — временной отрезок, отображаемый в окне Performance Monitor. По умолчанию данные обновляются каждую секунду, а отображаемый интервал составляет 100 секунд. Для более-менее длительного наблюдения эти значения желательно увеличить.
На вкладке Source (Источник) мы указываем, откуда брать данные:
• Current activity — текущая активность, выводится в окне Performance Monitor по умолчанию;
• Log files — здесь можно указать путь к сохраненному ранее файлу журнала;
• Database — использовать в качестве источника базу данных SQL. Performance Monitor позволяет записывать и извлекать данные о производительности в базу данных, конечно при наличии SQL сервера.
На вкладке Data можно отредактировать список счетчиков, а также изменить визуальные параметры отображения каждого счетчика — цвет (Color), масштаб (Scale), ширину линии (Width) и ее стиль (Style).
На вкладке Graph изменяем отображение графика:
• View — задаем режим отображения: график, гистограмма или отчет;
• Scroll style — тип прокрутки, указывающий направление прокрутки для линейного графика. Выбрав Wrap (Зацикливание) график будет прокручиваться слева направо, Scroll (Продвижение) — в обратном направлении;
• Title — название графика, отображаемое под панелью инструментов;
• Vertical axis — при помощи этого параметра можно дать название вертикальной оси координат;
• Show — включает отображение вертикальной и горизонтальной сетки и подписи со значениями для осей координат;
• Vertical scale — диапазон значений вертикальной шкалы. Здесь устанавливаем минимальное и максимальное значение, которые будут отображаться на графике.
Ну и на вкладке Appearance настраивается цветовое оформление и используемый шрифт.
Сохранение данных о производительности
Иногда может потребоваться сохранить полученные данные, например для предоставления отчета или для проведения дальнейшего анализа. Performance Monitor позволяет экспортировать полученные данные в файл. Для экспорта надо кликнуть правой клавишей мыши в окне и в открывшемся меню выбрать пункт «Save Settings As». По умолчанию отчет сохраняется в формате HTML, и его можно открыть в любом браузере.
Также можно выбрать для сохранения формат файла с расширением .tsv — файл с разделителями — знаками табуляции. Этот формат может использоваться для экспорта данных в электронные таблицы. А выбрав в контекстном меню пункт «Save Image As» можно сохранить содержимое экрана в виде изображения в формате GIF.
Вот так выглядит в браузере HTML-отчет. В нем сохранены все параметры монитора производительности, включая тип отображения, заголовки и т.п.
PowerShell
Значения счетчиков производительности можно посмотреть и из консоли PowerShell, где для этого есть специальный командлет Get-Counter . Хотя PowerShell имеет гораздо меньше возможностей для отображения счетчиков производительности, чем Performance Monitor, но зато может использоваться в режиме установки Server Core, при полном отсутствии графического интерфейса.
Предположим, мы хотим с его помощью посмотреть загрузку процессора. Сначала выведем все доступные счетчики для процессора:
(Get-Counter -ListSet Processor).counter
Затем выбираем нужный и выводим его значение:
Get-Counter -Counter ″\Processor(_total)\% Processor Time″ -SampleInterval 10 -MaxSamples 2
— В скобках указывается экземпляр счетчика (Instance), в данном примере это ядра процессора. Можно указать номер конкретного экземпляра, либо поставить звездочку (*), тогда будет выведена информация по каждому экземпляру, а указав параметр (_total), мы получим суммарную информацию по всем экземплярам.
— Параметр -SampleInterval указывает периодичность снятия данных, а -MaxSamples — количество попыток. Так в примере данные снимаются 2 раза с интервалом в 10 секунд. Если вместо этих параметров указать -Continuous , то данные будут сниматься непрерывно, пока вы не нажмете Ctrl+C;
— При необходимости можно вывести значения с нескольких счетчиков, указав их через запятую.
Заключение
Итак, сегодня мы рассмотрели некоторые способы использования счетчиков производительности для мониторинга серверов в режиме реального времени. В следующей статье речь пойдет о настройке групп сборщиков данных, сохранении данных в файлы журналов и последующем их анализе, а также о настройке уведомлений.
Источник
Performance counter data is not being displayed in Windows Server 2012 Server Manager
When you turn on the performance counters for servers that you are managing in Windows Server 2012 Server Manager, you may notice the Counter Status will read On – Waiting for data.
In Performance Monitor, there is a data collection set called Server Manager Performance Monitor. This data collection set has a collection time of every 5 minutes. For this reason, the performance data will not be available to Server Manager until a collection is run on the managed server. Wait for a few minutes and the data will start being display in Server Manager.
Popular posts from this blog
AD LDS allows you to provide directory services to applications that are free of the confines of Active Directory. To list all the AD LDS instances on a server, follow this procedure: Log into the server in question Open a command prompt. Type dsdbutil and press Enter Type List Instances and press Enter . You will receive a list of the instance name, both the LDAP and SSL port numbers, the location of the database, and its status.
This week I instructed my first class using Windows Server 2012 accessed via LogMeIn and discovered a Sticky Key problem every time you press the Shift key. Here is my solution to resolve this. First off, in the Preferences of LogMeIn for the connection to the Windows Server, click General . Change the Keyboard and mouse priority to Host side user and click Apply at the bottom. On the Windows 2012 server, open the Control Panel – Ease of Access – Change how your keyboard works . Uncheck Turn on Sticky Keys . Click Set up Sticky Keys . Uncheck Turn on Sticky Keys when SHIFT is pressed five times . Click OK twice. If you are using Windows Server 2012 as a Hyper-V host, you will need to redo the Easy of Use settings on each guest operating system in order to avoid the Sticky Key Problem. Updated Information: March 20, 2013 If you continue to have problems, Uncheck Turn on Filter Keys .
In the past, to run the GPResult command, you would need to either physically visit this client, have the user do it, or use and RDP connection. In all cases, this will disrupt the user. First, you need PowerShell remoting enabled on the target machine. You can do this via Group Policy . Open PowerShell and type this command. Invoke-Command –ScriptBlock {GPResult /r} –ComputerName <ComputerName> Replace <ComputerName> with the name of the target. Remember, the target needs to be online and accessible to you.