Alguma teoria que pode ajudá-lo a desenvolver um plano:
-
O IIS 7.5 cria cada site como um pool de aplicativos (se você o criar a GUI)
-
Um pool de aplicativos é executado em um W3WP.exe
-
O W3WP Startup é o tempo mais caro da vida de um Pool de Aplicativos
-
Os pools de aplicativos são (principalmente) iniciados por demanda - eles só começam quando uma solicitação chega
-
O IIS expira (encerra) os pools de aplicativos inativos após 20 minutos por padrão
-
A reciclagem sobreposta é mais rápida que a inicialização a frio
-
O IIS tem um limite de tempo de inicialização padrão para os pools de aplicativos de 90 segundos e eles são encerrados (e reciclados, por exemplo, iniciados novamente) se não estiverem sendo executados por esse número.
Se você achar que seu desempenho na primeira solicitação é abominável:
-
pode ser que seu aplicativo faça muitas coisas quando é executado pela primeira vez, o que seria afetado pelo desempenho do IO / network / db
-
não deixe o pool de aplicativos parar
-
examine o IO acontecendo durante a inicialização do pool de aplicativos - O ResMon (incluído no W2008R2 e W7) pode fornecer uma boa visão disso, principalmente na guia do disco, onde mostra taxas de bytes / seg.
-
use o Perfmon para rastrear o desempenho do site em comparação com o desempenho do IO e o tempo de inicialização do W3WP
- e desempenho geral em termos de CPU / Net / Disk / Mem - se algum deles for um aplicativo de gargalo, melhore-os
Se a caixa em si for uma VM compartilhada, sugiro que ela seja muito compartilhada ou não tenha sido dimensionada adequadamente. Os contadores de desempenho que envolvem o relógio de parede, em vez do tempo de percepção relativa por VM, podem ser úteis para diagnosticar isso.