Как вы контролируете использование ЦП процессом с помощью PowerShell?

Я пытаюсь написать сценарий PowerShell для мониторинга использования ЦП в % процесса SQL Server. Я хотел бы делать снимки этого числа каждый день, чтобы мы могли отслеживать его с течением времени и следить за тенденциями.

Мои исследования в Интернете показали, что этот запрос WMI должен дать мне то, что я хочу:

Get-WmiObject -Query "SELECT PercentProcessorTime FROM win32_PerfFormattedData_PerfProc_Process WHERE Name='SqlServr'"

Когда я запускаю запрос WMI, я обычно получаю значение где-то между 30 -50%enter image description here

Однако, когда я наблюдаю за процессом в мониторе ресурсов, он обычно в среднем использует менее 1% ЦП.SQL Server Average CPU Utilization

Я знаю, что запрос WMI просто возвращает моментальный снимок использования ЦП, а не среднее значение за длительный период времени, поэтому я знаю, что эти два показателя нельзя сравнивать напрямую. Тем не менее, я думаю, что моментальный снимок обычно должен быть менее 1%, поскольку средний показатель монитора ресурсов составляет менее 1%.

У кого-нибудь есть идеи, почему такое большое расхождение? И как я могу получить точное измерение использования ЦП для процесса?

10
задан 17 revs 3 September 2012 в 14:58
поделиться