Reciclagem de pools de aplicativos sem motivo

2

Temos um problema em um dos nossos servidores de produção (servidor Windows 2003). Parece que todos os pools de aplicativos estão reciclando a cada 10 segundos ou mais (todos ao mesmo tempo). Escusado será dizer que isto afeta negativamente o desempenho das aplicações.

Sintomas:
- caches de aplicativos são perdidos
- instruções de depuração no código de inicialização do aplicativo estão sendo acionadas
- os fios de fundo estão parados

Outras coisas descobri:
- surpreendentemente, os processos do w3wp.exe permanecem estáveis
- nenhum anti vírus em execução nessa máquina
- tentou desativar a notificação de alteração de arquivo adicionando <httpRuntime waitChangeNotification="1000000" /> e <compilation numRecompilesBeforeAppRestart="100000" /> a um dos aplicativos, mas isso não ajudou. - nada suspeito no Visualizador de Eventos

Não tenho certeza do que mais tentar aqui.

    
por liho1eye 25.02.2013 / 17:14

2 respostas

3

Você precisa habilitar o log do Monitoramento de Integridade do IIS. Ele registra o motivo da reinicialização no log de eventos do aplicativo. Você não deve desabilitar a notificação de alteração de arquivo porque não deve haver nada mudando no site. Quaisquer arquivos / dados criados / modificados / excluídos devem residir fora da estrutura de pastas do site.

Isso agora está embutido na GUI Pool de aplicativos no IIS 7. Para habilitar isso no IIS 6, você pode adicionar as informações relevantes ao web.config. Você deseja especificamente registrar os "Eventos de vida do aplicativo".

  <system.web>
    <healthMonitoring enabled="true" heartbeatInterval="1">
      <rules>
        <add name="HeartBeat" eventName="Heartbeats" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:01:00" maxLimit="Infinite"/>
        <add name="App Lifetime" eventName="Application Lifetime Events" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:00:00" maxLimit="Infinite"/>
      </rules>
    </healthMonitoring>
  <system.web>

Usando eventos de monitoramento de integridade
link

    
por 04.03.2013 / 17:26
1

Você tem as permissões necessárias para negar o acesso de gravação à pasta bin por um tempo? Se você fizer isso, se algo estiver sendo gravado na pasta, o erro poderá aparecer e você poderá rastreá-lo a partir daí.

O cenário de pior caso, se não houver erros, pelo menos, o pool de aplicativos não será reciclado porque a pasta bin não será alterada.

Outra alternativa é usar o Process Monitor da Microsoft e observar a pasta para ver qual acesso está acontecendo. Isso mostrará os arquivos que são lidos / gravados e qualquer processo que os acessa.

    
por 06.03.2013 / 13:18