Столкновение с проблемой в IIS 10 (Windows Server 2016, NET 4 интегрированный режим, classi c ASP. NET приложение), где maxConcurrentRequestsPerCPU
установка более 5000 не кажется применяется. Однако установка более низких значений имеет четкий и видимый эффект.
Я использую JMetter для нагрузочного тестирования. Если я установлю количество потоков на 5000, я увижу 100% успех, но все, что выше, будет иметь частоту отказов независимо от того, насколько высоко я установил maxConcurrentRequestsPerCPU
и requestQueueLimit
. Например, при тестировании с 6000 потоков частота отказов составляет 16,6%.
Если я установлю для maxConcurrentRequestsPerCPU
что-то низкое, например 12, я получаю почти 99% отказов, поэтому я знаю, что настройки нижней границы имеют эффект, но не более 5000.
ВМ имеет 2 назначенных ядра, поэтому с 5000 x 2 ядрами я чувствую, что смогу успешно протестировать с 10 000 потоков.
Как pnet .config
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="50000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="50000"/>
</system.web>
<runtime>
<legacyUnhandledExceptionPolicy enabled="false" />
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
<SymbolReadingPolicy enabled="1" />
<shadowCopyVerifyByTimestamp enabled="true"/>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true" />
</configuration>
Что может означать перезапись этих настроек и принудительное выполнение верхней границы 5000?
Я считаю, что есть некоторые дополнительные настройки, которые требуют должно быть установлено более 5000.
Любая помощь / совет будут признательны на этом этапе. Спасибо.