O que você esperaria que o tamanho típico do Pool de Aplicativos fosse para um site ASP MVC3 básico?

2

Recentemente aluguei um espaço compartilhado no WinHost.com (pacote básico). Eu implantei um único aplicativo ASP MVC3 que usa o NHibernate. É um aplicativo muito enxuto e eu tenho perfilado para vazamentos de memória e no meu IIS 6.1 local eu nunca tenho um problema com isso.

No entanto, quando implantado no WinHost, o pool de aplicativos continua sendo reciclado. Seu suporte diz que o pacote Básico oferece um tamanho máximo de pool de aplicativos de 100 milhões. Eu tenho o mesmo código do aplicativo em execução no pacote Max e o suporte me diz que ele usa 130 MB do limite de 200 MB.

Antes de correr e atualizar meu pacote Basic para o Max, alguém sabe se esse é um tamanho típico para um aplicativo ASP MVC leve. Não usa sessão ou cache e tem páginas muito finas. Parece estranho para mim que você não pode executar um único aplicativo ASP em seu pacote básico. Eles são projetados apenas para sites estáticos ou algo assim?

    
por Rob Kent 22.02.2012 / 00:36

2 respostas

2

É extremamente difícil prever. Eu vi aplicativos MVC leves com processos de trabalhador único consumindo 12-1300 MB de memória (sim, 1,3 GB).

Como você provavelmente sabe, o .NET CLR é construído em torno de um modelo de compilação de 2 estágios, o que significa que seus assemblies pré-compilados ainda precisam ser traduzidos do MSIL (implementação da Linguagem Intermediária Comum da Microsoft) em código de máquina. Quando uma solicitação é feita primeiramente para um aplicativo IIS, todas as páginas são analisadas e compiladas, e os resultados são armazenados em cache na memória do processo.

Assim, sua saída real pode não ser tão "pesada", mas o processo ainda precisa alocar memória para os assemblies compilados e todos os assemblies dependentes carregados do cache global de assemblies.

Além disso, depende muito mais do que apenas o próprio aplicativo. Há uma grande diferença na memória consumida por um aplicativo quando ele tem uma fila de solicitações de 10, comparada a 1.000 ocorrências (mesmo que cada solicitação tenha um baixo consumo de memória).

Para mim, um limite de 100MB parece ser bastante restrito

    
por 22.02.2012 / 01:49
0

Tanto a sua como a plataforma do fornecedor são iguais? Descobri que, ao executar um aplicativo em x64, o uso de memória aumenta quando comparado ao x86 e, se houver muitos objetos, ele poderá duplicar.

    
por 22.02.2012 / 13:43