O IIS que serve conteúdo estático fornece 503 aleatoriamente

3

Estamos com alguns problemas no nosso servidor de imagens.

É um Win 2008 que executa o IIS 7.5 e só serve conteúdo estático: imagens.

Ele foi executado sem problemas por um bom tempo, até recentemente quando desativamos o Cache de Saída, pois percebemos que ele permitia que ele enviasse cabeçalhos de host sem cache para os clientes (forçando-os a buscar as imagens do servidor a cada tempo)

Nós lemos bastante sobre isso, e parece que o IIS simplesmente funciona dessa maneira - você usa o Cache de Saída ou usa os cabeçalhos de host do cache.

De qualquer forma, tendo desativado o Cache de Saída, agora experimentamos intervalos aleatórios de 5 minutos, em que todos os pedidos obtêm apenas um 503 Serviço Indisponível. Durante esse período, o contador de desempenho "Arquivos armazenados em cache" cambaleia (não aumenta nem diminui) e, após o período, todos os caches são liberados.

Você pode achar estranho falar sobre cache, já que desativamos o Cache de Saída.

O problema é que mudamos o parâmetro ObjectTTL no registro, então armazenamos em cache os arquivos por 3 minutos (o que funcionou muito bem, nossa E / S de disco caiu significativamente)

Assim, mesmo com o Cache de Saída desabilitado, ainda estamos armazenando muitos arquivos em cache - se pudéssemos nos livrar do 503 aleatório, seria perfeito :-D

Não recebemos nenhuma mensagem no log de eventos do Windows durante esses 503 intervalos, por isso estamos confusos sobre o que fazer.

Qualquer ideia é muito bem vinda: -)

    
por Steffen 02.03.2011 / 06:55

2 respostas

0

Finalmente resolvemos o problema.

Aparentemente foi causado pelo IIS verificando as alterações do web.config nos subdiretórios.

Ao definir allowSubDirConfig="false" em nosso arquivo applicationhost.config, o problema parou.

Isso é um pouco estranho, já que não temos mais de um arquivo web.config, e está na raiz do projeto - ainda se funcionar, por que reclamar :-D

    
por 03.03.2011 / 08:58
0

Talvez o problema seja os limites RequestQueue / ConcurrentRequest. Considere as configurações da resposta aceita nesta pergunta do Stack Overflow:

IIS 7.0 503 erros com manipulador genérico (.ashx) implementando IHttpAsyncHandler

To eliminate the 503 errors required 3 different config changes:

machine.config:

<configuration>
...  
   <system.web>  
    ...  
      <processModel enable="true" requestQueueLimit="100000"/>

IIS Manager > ApplicationPools > Advanced Settings

Queue Length : 65535

and finally (the missing piece of the puzzle), the command line:

appcmd.exe set config /section:serverRuntime /appConcurrent
    
por 02.03.2011 / 11:36

Tags