Otimização do IIS e ajuste de desempenho é bastante amplo tópico, e seu gargalo pode ser vários lugares.
Primeiro, você pode determinar melhor quais são os gargalos usando o Monitor de Desempenho .
Com base no que você encontra lá, é possível tentar as seguintes opções de ajuste de desempenho do IIS:
- Use o IIS Compressão.
- Ative pelo menos static caching, e ativar o armazenamento em cache dinâmico se isso fizer sentido.
- Ajustar seu Aspnet.config arquivos e arquivos machine.config e conexão web.config cordas para sua (s) inscrição (ões).
Verificando suas strings de conexão no web.config
Por padrão, o tamanho máximo do conjunto de strings de conexão em um arquivo web.config é 100, então tente especificar algo mais alto, como "Max Pool Size=200; Min Pool Size=10; Connect Timeout=45;"
.
Exemplo:
<add name="SiteSqlServer" connectionString="Server=mydomain.com;Initial Catalog=myDB;User ID=DB;Password=myDB;Max Pool Size=100;Min Pool Size=10;Connect Timeout=45;" providerName="System.Data.SqlClient" />
Verificando suas configurações no Aspnet.config
Localização: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 e C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727
Exemplo:
<system.web>
<applicationPool maxConcurrentRequestsPerCPU="5000" <!-- Default is 12 -->
maxConcurrentThreadsPerCPU="0" <!-- Default is 0 -->
requestQueueLimit="5000" <!-- Default is 5000 -->/>
</system.web>
Verificando suas configurações no machine.config
Localização: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG e C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ CONFIG
Exemplo:
<processModel
enable="true"
requestQueueLimit="5000" <!-- Adjust if necessary. Default 5000 -->
restartQueueLimit="10" <!-- Adjust if necessary. Default 10 -->
memoryLimit="60" <!-- Adjust if necessary. Lower for memory leaks. -->
maxWorkerThreads="100" <!-- Default 20 -->
maxIoThreads="100" <!-- Default 20 -->
minWorkerThreads="40" <!-- Default 1 -->
minIoThreads="30" <!-- Default 1 -->
/>
Exemplo:
<system.net>
<connectionManagement>
<add address="*" maxconnection="100" <!-- Default is 2 --> />
</connectionManagement>
</system.net>