Estou executando um teste de carga em um .NET
aplicativo da Web em uma LAN. O servidor que hospeda o aplicativo web é uma VM, Windows Server 2008 R2, com 2 GB de RAM e limite de 3 GB para memória virtual. Nenhum outro aplicativo da web está sendo executado nele
O teste dura 1 hora e 40 minutos e aumenta a carga a cada 10 minutos.
Registro o uso de memória perfmon
durante o teste de carga e vejo que a memória começa em 1,5 GB e aumenta até atingir o limite de 3,37 GB após 1 hora e 20 minutos, depois a memória cai para 1,5 GB novamente.
Não entendo por que isso está acontecendo. O gerenciamento de memória do Windows está fazendo isso e, em caso afirmativo, por quê?
Responder1
Você está mergulhando em um tópico muito complexo, difícil de resumir em apenas uma resposta simples aqui neste fórum.
Gerenciamento de memória do Windows. Sugiro que você comece assistindo esta série de vídeos em duas partes:
http://northamerica.msteched.com/topic/details/WCL405
http://northamerica.msteched.com/topic/details/WCL406
Para sua pergunta, basicamente, quando o sistema começa a ficar com pouca memória, o Memory Manager começa a mastigar listas de espera, listas de páginas modificadas e, finalmente, conjuntos de trabalho de outros processos.
Então, para responder à sua pergunta, sim, é o gerenciador de memória que está fazendo isso, de acordo com seus próprios algoritmos de "OK, estou ficando sem memória, o que posso fazer para liberar memória para esse porco no sistema"