Низкая производительность WCF при работе на ВМ - PullRequest
0 голосов
/ 01 декабря 2011

Я работаю над автономным приложением WCF, которое прекрасно работает на моем ПК; однако когда я пытаюсь запустить его на виртуальной машине, размещенной локально с помощью VMware Player, службе требуется около двух минут для возврата данных, тогда как первоначальный запрос занимал всего несколько секунд.

Виртуальная машина использует 2 ГБ ОЗУ и два ЦП под управлением Windows Server 2008 R2 (на 8-ГБ / четырехъядерном хосте под управлением Windows 7).

Глядя на трассировку службы WCF, у меня есть следующие записи журнала (время / описание):

15:41:26.771 From: Processing message 1.
15:41:26.771 Activity boundary.
15:41:26.820 Received a message over a channel.
15:41:26.844 ServiceChannel information.
15:41:26.848 Incoming HTTP request to URI 'http://localhost:8000/Sql/Database' matched operation 'GetDatabase'
15:41:26.944 Message Log Trace
15:43:25.775 To: Execute 'MyProject.ISqlService.GetDatabase'
15:43:25.775 Activity boundary.
15:43:25.947 From: Execute 'MyProject.ISqlService.GetDatabase'
15:43:25.947 Activity boundary.
15:43:25.947 Message Log Trace
15:43:26.134 Throwing an exception.
15:43:26.134 RequestContext aborted
15:43:26.134 Activity boundary.

Таким образом, между получением входящего HTTP-запроса и отправкой реализации сервиса возникает двухминутная задержка. Эта задержка происходит независимо от того, является ли запрос первым (таким образом, влечет за собой обычный штраф за разогрев WCF) или последующим запросом.

Хотя я понимаю, что не собираюсь получать производительность «голого металла» от виртуальной машины, я по-прежнему обеспокоен ужасной производительностью, особенно в связи с тем, что клиент стремится к таймауту до истечения двух минут. Что я могу сделать, чтобы улучшить положение? Это делает тестирование очень трудным.

1 Ответ

0 голосов
/ 21 января 2012

Возможно, ваш процесс не поддерживает расширение VT-x / AMD-V, поэтому виртуализация не требует аппаратного ускорения.Проверьте ваше оборудование с помощью CPU-Z.

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