Baixa utilização da CPU no IIS sem contenção de recursos

2

Eu tenho um aplicativo ASP.NET em execução no IIS7.5 com .NET4 . Em alguns momentos específicos, recebo muitas solicitações dos clientes (cerca de 10000 em dois minutos ) e demora cerca de 20 minutos até que todas estejam concluídas. Estou confuso, porque o uso da CPU não ultrapassa os 20% durante este período. Pensei na seguinte lista de motivos.

  1. Uso do banco de dados : Meu banco de dados é pequeno (cerca de 40 MB) e o uso de memória do meu servidor é inferior a 60%, portanto, o cache do banco de dados é 100%.
  2. Chamada de serviço externo : não há nada disso no meu serviço.
  3. Uso de bloqueios : Eu não usei nem bloqueios DB nem quaisquer semáforos no meu serviço.
  4. Número baixo de solicitações de execução simultâneas : O monitor de desempenho mostra que todas as solicitações de entrada vão para o estado em execução e a fila de espera está vazia nesse momento.

Quais são outras possíveis razões para a baixa utilização da CPU de tal sistema?

    
por Abouzar Nouri 18.08.2015 / 16:31

1 resposta

1

Finalmente, encontrei uma solução para esse problema. Configurei meu servidor como um web garden (aumento do número de processos de trabalho para 5) e o uso da CPU aumentou para 47%. Ainda não tenho certeza por que, mas meu palpite é que um grande número de solicitações ao banco de dados está preenchendo algum recurso que é limitado a um processo e aumentar o número de processos de trabalho pode resolver esse problema.

UPDATE

Eu encontrei a razão finalmente! Na configuração ServiceBehavior do meu serviço, tive InstanceContextMode.Single, enquanto o valor padrão de ConcurrencyMode também é Single. Eu mudei o último para múltiplos e está tudo bem agora.

    
por 19.08.2015 / 15:08