Temos um webpplication asp.net (.net 4.0) instalado em vários ambientes. Na maioria dos ambientes, o uso de memória está em torno de 1GB. No entanto, temos um ambiente em que o uso da memória atinge 5,5 GB. Esta é uma máquina do Server 2008 com 4 núcleos e 8GB de memória RAM sendo executada como um cliente VMWare esx.
Configurei contadores de desempenho com os seguintes resultados:
Memory
Committed Bytes 10 145 739 948,0000
Pages Output/sec 0,0000
Paging File _Total
% Usage 28,998
Process _Total w3wp
Working Set 7 480 003 280 5 604 421 056
Eu também fiz um dump de memória do processo w3wp (quando era +/- 2 GB, porque falhas maiores falharam). Correndo DebugDiag no despejo não me fez mais sábio. Parece que a própria .net está ocupando apenas 800MB e a maior parte da memória é ocupada por 'alguma outra coisa'.
.NET GC Heap Information
GC Heap Size 826,09 MBytes
Total Commit Size 1217 MB
Total Reserved Size 16190 MB
Heap Analysis
Summary
Number of heaps 29 Heaps
Total reserved memory 1,89 GBytes
Total committed memory 1,79 GBytes
...
(largest of the Heaps)
Reserved memory 1,69 GBytes
Committed memory 1,67 GBytes(99,14% of reserved)
Uncommitted memory 14,86 MBytes(0,86% of reserved)
Number of heap segments 113 segments
Number of uncommitted ranges 113 range(s)
Size of largest uncommitted range 0 Bytes
O problema é que não tenho certeza se esse alto uso de memória é um problema. Então, o que estou procurando é alguma orientação de como proceder com esse problema:
- Alguém me diz que é assim que o IIS7 funciona e eu não deveria me preocupar com a memória.
- Ou alguém me aponta como eu posso analisar esse despejo ainda mais (especialmente como eu posso ver o que está nessa pilha de 1,6 GB.
- Ou me explique por que existe uma diferença tão grande entre o que o .net está usando e o que o W3WP está usando.
EDITAR:
Isso é o que vejo no ProcExp:
Como você pode ver, o total de bytes em todos os heaps é de 1,12 GB. Na época, o W3WP estava usando 6,4 GB. Por que existe uma diferença tão grande entre esses dois números? O que poderia estar tomando esse espaço? É essa a fragmentação do LOH que vejo?