O que esse despejo de memória do IIS significa? (memória reservada)

1

Meus w3wp's são reciclados a cada 60 segundos depois de usar muita memória virtual.

Eu executei a Ferramenta de diagnóstico de depuração do IIS para capturar um despejo de memória antes do trabalhador processo reciclado; a parte mais interessante parece ser esta:

Virtual Allocation Summary

Reserved memory 4.88 GBytes  
Committed memory 328.27 MBytes  
Mapped memory 17.36 MBytes  
Reserved block count   524 blocks  
Committed block count   1082 blocks  
Mapped block count   43 blocks

Para que 4.88 GBytes de memória reservada pareçam muito grandes. Mas nem o DotNetMemoryAnalysis nem o Analisador de Pressão de Memória regular parecem me dizer para onde foram os 4,88 GB.

Como posso descobrir?

    
por Jesse 12.04.2012 / 22:27

1 resposta

2

A memória virtual não é um recurso escasso. O sistema operacional pode criar grandes quantidades a um custo quase zero. Portanto, não há motivo para se preocupar com o consumo de memória virtual. Você pode simplesmente ignorá-lo. David Wang aborda esta questão específica em grande detalhe em um postagem no blog se você quiser o nitty gritty.

O que quer que seja reciclagem com base no consumo de memória virtual precisa ser alterado para não fazer isso, já que isso não faz sentido. Se a memória mapear um arquivo de 4GB, você usará 4 GB de memória virtual, embora os recursos reais do sistema necessários para isso sejam triviais. (E não será mostrada como memória mapeada porque a "memória mapeada" conta apenas as páginas com falhas.)

A reciclagem de processos com base na memória virtual é totalmente inútil.

    
por 13.04.2012 / 01:09