У нас есть служба SOAP Delphi, которая должна быть включена в SSL. Я решил использовать обратный прокси-сервер IIS ARR для разгрузки SSL для упрощения конфигурации (по сравнению с OpenSSL и ручным сертификатом + управление парольной фразой). ARR работает, но он добавляет безумное количество накладных расходов ... Время отклика прошло от менее чем от 2 секунд до 19 секунд за 18 запросов на обслуживание (около 60 Кб сжатого итога).Как отслеживать накладные расходы, добавленные маршрутизацией запроса приложений?
Я добавил журнал регистрации времени к клиенту & сервер, на который отправляются и принимаются сообщения. Он показывает примерно 1 секунду, добавляемую к каждой маршрутизации запроса через ARR между отправкой от клиента и получением службой. Ответ отсылается очень быстро, только маршрутизация запроса через ARR работает медленно (см. Изображение ниже).
Как я могу отслеживать источник накладных расходов? Является ли ARR не подходящим для этого варианта использования? Я попытался настроить и отключить большинство настроек, включая кеширование. Я пробовал разные хосты с чистыми настройками IIS, включая производственный Windows Server 2012. Сам SSL не является накладными расходами, просто наличие обратного прокси ARR HTTP вызывает задержку.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8987/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Запрос & Образцы ответа от Скрипаче:
Не следует видеть этот тип задержки. Первое, что приходит на ум - это тайм-аут вашего пула приложений, находятся ли они в выключении, а задержка запуска пула по каждому запросу? Удостоверьтесь, что они никогда не выключаются из-за простоя. –
@dirt спасибо, что ответили. Мой запуск пула приложений неактивен на два дня и перерабатывается только при нарушениях ограничений использования памяти. В настоящее время я нахожусь в «Без управляемого кода» и интегрированном конвейере. Трассировка IIS показывает задержку на EXECUTE_REQUEST_HANDLER ARR (я добавил изображение после вашего комментария). – carlmon
@carlmon Просто интересно, решили ли вы когда-нибудь это? Я подозреваю, что производительность ARR в моей среде (хотя это ничего плохого), ps: Я вижу, что ARR 3.0 был выпущен только из бета-версии. – CameraSchoolDropout