Não se preocupe! Você pode estar apenas com excesso de cache!
A configuração padrão do cache de saída no IIS permite o armazenamento em cache no modo kernel e no modo de usuário.
O cache do modo kernel é gerenciado pelo driver HTTP nativo (também conhecido como http.sys), e é muito rápido, mas só pode servir conteúdo que seja "público", já que precisa ser capaz de responder a um cache antes do solicitação chega ao aplicativo da web.
Infelizmente, isso significa que vários tipos de solicitação não podem ser armazenados em cache no modo kernel, incluindo sessões autorizadas (como visitas a sites que exigem autenticação).
O tipo de configuração que você descreve parece com algum tipo de serviço de cliente de multilocação, levando-me a acreditar que o cache do modo kernel está fora de questão.
O cache de modo de usuário, por outro lado, é gerenciado no nível do aplicativo e os objetos armazenados em cache são armazenados no conjunto de memória do processo de operador de serviço. O tamanho total do cache é governado pelo atributo chamado maxCacheSize
no elemento de configuração system.webServer/Caching
.
Por padrão, o atributo maxCacheSize
é definido como 0
, o que, aproximadamente, significa Permitir que o IIS aloque a quantidade de memória que atualmente é permitida .
Se você tem muitos hits pequenos consecutivos (< 256kb), mas um baixo uri cache hit ratio , o IIS certamente irá consumir toda a memória que você fornecer.
Você pode testar facilmente se isso é verdade ou não, diminuindo o valor maxCacheSize
ou desativando totalmente o cache de saída no servidor.
Se você ainda estiver convencido de que você tem um problema de memória com seu aplicativo, inicie o Monitor de Desempenho e examine o objeto Contador de Desempenho "Aplicativos ASP.NET".
Selecione os contadores de GC e veja como a coleta de lixo está dispersa.
As coleções Gen0 devem representar quase todas as descartes, enquanto um grande número de coleções Gen1 e Gen2 podem indicar um problema com vidas úteis mais longas do que o necessário - que é um sintoma comum do gerenciamento de memória com falha