iis limite de memória reciclar pool de aplicativos mata solicitações em execução

3

Eu tenho um serviço WCF que pode crescer na memória. Eu coloquei um limite de memória nos bytes privados para reciclar o pool de aplicativos após 500 m de uso de memória. Eu notei que o meu processo w3wp.exe pode chegar a 600megs quando ele decide reciclar e qualquer pedido do cliente atualmente em execução obter um erro de comunicação. Existe uma maneira de os iis aguardarem que as solicitações sejam concluídas antes de reciclar o processo?

    
por user80855 04.01.2012 / 20:48

1 resposta

2

A reciclagem está eliminando um processo quando atinge certas condições, substituindo-o por outro.

Na terra da analogia terrível, é um pouco como garantir que o tamanho de um balão possa ser de apenas um pé quadrado com pinos posicionados em uma esfera de um pé - quando o balão atinge o limite, ele aparece e você substitua-o por um novo.

Os processos sendo reciclados recebem até {Shutdown Time Limit} para se fecharem, do ponto em que são instruídos a reciclar.

Se eles não puderem terminar o trabalho nesse período {90 segundo padrão}, é isso.

Se você estiver usando um host WCF com uma conexão persistente, acho que a resposta é não; mas a resposta também é "escolha limites maiores". O que você descreveu como sua política é: "Eu quero que meu aplicativo morra quando atingir 500 MB". Mas o aplicativo em si não sabe sobre esse limite; está apenas tentando crescer como precisa.

Carregue seu aplicativo sem limite; veja o que acontece e o que pode indicar um vazamento; definir limites no ponto em que um vazamento é indicado.

    
por 06.01.2012 / 06:11

Tags