Какие компоненты локальной машины могут повлиять на производительность сеанса RDP?

У меня есть следующий полностью воспроизводимый сценарий, который я не могу понять:

Существует очень простое приложение, которое не делает ничего, кроме вызова CreateObject("Word.Application"), то есть создает экземпляр MS Word для COM-взаимодействия. Это приложение находится на сервере терминалов Windows. Тестовый пример — подключиться через RDP, запустить приложение, и приложение выведет время, затраченное на вызов CreateObject.

Теперь проблема в том, что время выполнения значительно больше, если я подключаюсь с определенного ноутбука (HP Spectre): требуется 1,7s (+/- 0.1s).

Если я подключаюсь с любой другой машины (ноутбука или стационарного компьютера), то время выполнения составляет от 0,2-0,4s.

Время выполнения не зависит от используемой учетной записи RDP, разрешения экрана или локальных принтеров. Я даже заново установил Windows на этот ноутбук HP, чтобы исключить другие побочные эффекты. Неважно, подключен ли ноутбук HP через WLAN или сетевую карту USB. Я не понимаю разницу во времени выполнения от 4x до 8x по сравнению с любой другой машиной.

Какая причина (компонент/параметр) может объяснить такую ​​большую разницу во времени выполнения?

Некоторая дополнительная информация: я попытался отладить процесс с помощью монитора API и увидел, что> 90% времени выполнения фактически тратится между вызовами RpcSend и RpcReceive. К сожалению, я не могу понять эту информацию.


person MicSim    schedule 06.02.2018    source источник
comment
О каких версиях Windows идет речь? Любые брандмауэры?   -  person Scalarr    schedule 15.02.2018


Ответы (2)


Возможно, управление учетными данными как-то мешает.

Откройте файл .rdp с помощью блокнота и добавьте

enablecredsspsupport:i:0

Этот параметр определяет, будет ли RDP использовать поставщика поддержки безопасности учетных данных (CredSSP) для проверки подлинности, если он доступен.

Связанная документация

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff393716%28v%3dws.10%29

person Tschallacka    schedule 13.02.2018

Согласно вашей информации о потреблении времени RpcSend и RpcReceive, это может быть связано с тем, что на вашем клиентском компьютере остановлена ​​какая-либо служба, такая как сервер DCOM или какая-либо другая служба, связанная с COM (в их именах обычно есть «COM» или «транзакция») .

Некоторые из этих служб могут быть запущены/остановлены (если выбран режим «Вручную») системой до/после передачи вашего запроса, но запуск службы происходит с задержкой по времени.

Я предлагаю вам открыть «Управление компьютером» — «Службы» или запустить -> services.msc и сравнить службы, связанные с COM, работающие на вашем «медленном» клиенте и на ваших «быстрых» клиентах, и попытаться установить автоматический запуск вместо «Вручную» или «Отключено».

Также попробуйте запустить API Monitor на таких процессах, чтобы точнее определить времязатратное место.

person Arthur Bulakaiev    schedule 15.02.2018