O uso da Inicialização do Aplicativo no Azure ainda está mostrando uma lentidão dolorosa

7

Minha suposição era que, se eu ativasse o Warmup de aplicativo do IIS8 no Azure, que todos os meus sites seriam instantaneamente carregados, esse não é o caso .

Então, basicamente, eu ativei preloadEnabled e defini o startMode para AlwaysRunning , usando:

public class WebRole : RoleEntryPoint
{
    public override void Run()
    {
        using (var serverManager = new ServerManager())
        {
            foreach (var application in serverManager.Sites.SelectMany(c => c.Applications))
            {
                application["preloadEnabled"] = true;
            }

            foreach (var appPool in serverManager.ApplicationPools)
            {
                appPool["startMode"] = "AlwaysRunning";
            }

            serverManager.CommitChanges();
        }
    }
}

Também desabilitei a reciclagem dos pools de aplicativos do IIS e a reinicialização periódica do IIS, usando a seguinte tarefa de inicialização:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.recycling.periodicRestart.time:00:00:00

Em cada um dos meus sites, coloquei o seguinte no meu web.config:

<system.webServer>
    <applicationInitialization skipManagedModules="true">
        <add initializationPage="/" />
    </applicationInitialization>
</system.webServer>

Mas ainda assim, todos os meus sites ainda levam 30 segundos no primeiro hit . Se eu for remoto na máquina antes de acessar qualquer um dos sites, posso ver todas as configurações aplicadas no IIS. Eu também posso ver que os sites estão rodando em torno de 60-80MB de memória (insinuando que eles foram pré-carregados).

Minha pergunta é: isso é tão bom quanto o pré-carregamento? Certamente é para ser mais rápido? Eu estava esperando que o atraso fosse mínimo, talvez 2 ou 3 segundos na primeira carga?

    
por mattytommo 26.04.2013 / 12:14

2 respostas

2

Suponho que você tenha realmente instalado o módulo de Inicialização de Aplicativos que NÃO está incluso em uma instalação padrão do IIS8?

Confira este ótimo postar sobre como colocar tudo em prática e, com sorte, resolver seus problemas.

    
por 18.07.2013 / 21:05
0

Embora não responda diretamente à sua pergunta, você poderá usar os novos recursos de monitoramento no Azure para manter o seu site funcionando.

Se você procurar no portal de gerenciamento no serviço de nuvem, há uma seção chamada "status do ponto de extremidade da web". Se você definir esse valor, o Azure pesquisará essa página a cada dois minutos ou mais.

    
por 29.06.2013 / 01:40

Tags