Está executando um IISReset noturno desatualizado?

7

Nas últimas duas semanas, nosso IISReset noturno não voltou e causou uma interrupção.

Nós temos uma Tarefa do Windows que é executada toda noite que executa um IISReset, e eu estou querendo saber se isso é ainda mais necessário?

Devo pesquisar a funcionalidade no pool de aplicativos para reiniciar a si mesma?

    
por Scottie 09.06.2015 / 15:31

3 respostas

25

Eu não consideraria isso uma boa prática. Quando a maioria das pessoas geralmente configura itens como "nightly iisresets" ou "nightly reboots", geralmente, é porque eles estão executando um aplicativo mal escrito e vazando recursos, a ponto de todo o sistema se tornar instável a menos que reinicie o sistema. aplicação, o serviço ou até mesmo todo o sistema. O problema é que essas pessoas estão ignorando o problema real. (Ou são incapazes de consertar isso.)

Corrija o aplicativo para ser estável e não vazar recursos, e depois os iisresets ou reinicializações do sistema não serão mais necessários ou úteis. Infelizmente, isso é muito comum nos aplicativos da web do IIS, até o ponto em que o próprio IIS é projetado com base na idéia de que os aplicativos executados serão mal escritos e vazados. Caso contrário, não há necessidade de reciclar rotineiramente pools de aplicativos, etc.

Então, para recapitular - se os iisresets noturnos fizerem parte de sua estratégia, é porque você tem um aplicativo da Web mal escrito e o ideal seria consertar seu aplicativo. (E sim, reciclar pools de aplicativos é melhor que um iisreset, já que você pode reciclar um pool de aplicativos sem afetar todos os outros sites em seu servidor.)

Edit: Aqui está um post bem bacana de um cara que basicamente diz a mesma coisa que eu, mas ele também afirma que ele sempre desativa completamente a reciclagem do pool de aplicativos, em vez disso insistindo que sua equipe conserte cada vazamento de memória , que IMO é um esforço heróico e louvável:

link

    
por 09.06.2015 / 15:38
8

Sim, totalmente desatualizado, na verdade nunca foi necessário ou uma boa prática. Se você tivesse que fazer isso, havia algo errado com seu aplicativo.

Reciclagem de pools de aplicativos é uma operação muito mais barata, pois apenas encerra um processo e inicia outro. Iisreset reinicia todo o IIS com todos os seus componentes.

A reciclagem AppPool também oferece muito mais granularidade sobre quando reiniciar seu pool, dependendo de várias métricas.

    
por 09.06.2015 / 15:50
3

Eu gostaria de oferecer uma visão alternativa sobre isso. Embora eu concorde que você não deve fazer isso porque está tentando resolver um problema como vazamentos de recursos, nós destruímos máquinas aleatoriamente durante o expediente. A idéia é que garantamos que nosso plano de recuperação automática de desastres funcione e, se isso não der certo, durante o dia em que temos a maior parte de nossa equipe. Sempre temos alguns servidores que não são afetados por isso para garantir que mantemos um serviço mínimo, no entanto, estamos seguros, sabendo que, se tivermos que fazer uma reinicialização em um servidor, nos sentimos seguros para fazê-lo. Se você não faz um regularmente e, de repente, você tem que reiniciar o sistema por qualquer razão, pode ser um momento muito estressante e nervoso como quem sabe o que vai acontecer.

    
por 10.06.2015 / 11:14