Invoke-Command занимает много времени, но только изредка - PullRequest
1 голос
/ 18 января 2020

У меня есть сценарий PowerShell, использующий Invoke-Command, который использовался около года, и внезапно возникли очень плохие проблемы с производительностью. То, что обычно требовалось от 1 до 2 секунд, теперь занимает около 90 секунд. Смущает, что это не всегда занимает много времени. Фактически, я тестировал его много раз в течение сегодняшнего дня и видел, что он отлично работает с каждой попыткой в ​​течение 10-20-минутного периода, а затем он снова становится ужасно медленным в течение следующих 20-40-минутного периода тестирования.

Простой взгляд на мой тестовый код:

$cred = New-Object System.Management.Automation.PSCredential $username, $securePassword     
Write-Host "Running command..."
Invoke-Command -ComputerName $target -Credential $cred -ScriptBlock {  
    Write-Host "Hello"
}
Write-Host "Done"

Время получения результатов выглядит примерно так:

"Running command..."

65 секунд ...

"Hello"

25 секунд ...

"Done"

Для использования этого мне нужно подождать процесса и затем увидеть результат команды, чтобы я не мог просто киньте -AsJob в скрипт и не ждите вывода. Что я должен искать, чтобы найти, что замедляет это? Я проверил целевую машину во время медленного ответа и не вижу необычного использования процессора или памяти.

1 Ответ

0 голосов
/ 20 января 2020

Кажется, я наконец нашел часть причины этого ... И ответ связан с некоторыми деталями, которые я не предоставил в своем первоначальном вопросе.

Целевая машина для моего сценария это контроллер домена, а сеть настроена с двумя контроллерами домена (для отказоустойчивости). Если я делаю вызовы -ComputerName "my.domain.com", я иногда вижу длинные задержки ... Но если я просто использую IP-адрес машины вместо имени домена, он сразу проходит.

Я до сих пор не знаю, почему это только сейчас только начало возникать проблемы, и какова реальная проблема root ... но это дает мне что-то, по крайней мере, чтобы скрипт работал, пока мы не сможем обновить наш окружающая среда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...