Как получать оповещения по электронной почте, когда средняя загрузка ЦП превышает 90 процентов в течение 30 минут? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь получить среднее значение загрузки процессора за 30 минут.Если в течение 30 минут оно превышает 90 процентов, я могу получать оповещения по электронной почте с помощью планировщика задач и монитора производительности, а также сценария PowerShell.

Я пробовал, но каждые 30 минут получал общее использование ЦП.

1 Ответ

0 голосов
/ 02 апреля 2019

Приведенный ниже скрипт даст вам среднее время процессора за 30 минут.Затем скрипт может отправить электронное письмо, если среднее значение процессора за 30 минут превышает 90. Я прокомментировал код для облегчения понимания.

Resizable array you can add items to
[System.Collections.ArrayList]$List = @()

#Counter which is increased by 1 after getting each counter
$Counter = 0

#As long as the counter is less than the below value... (1800 = 30 minutes)
While ($Counter -lt 10)
{
    #Get 1 counter per second
    $CpuTime = $(Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 1).CounterSamples.CookedValue

    #Add the CPU total time to the list
    $List.Add($CpuTime)

    #Increase the counter by 1. As we are getting one sample per second, this will be increased by one each second
    $Counter++
}

#Get the minimum, average and maximum of the values stored in the list
$Measurements = $List | Measure-Object -Minimum -Average -Maximum

#Email bit. To befinished by you
If ($Measurements.Average -gt 90)
{
    Send-MailMessage ......
}

Надеюсь, это поможет.

...