Múltiplos processos de 32 bits em 64 bits IIS - limite de memória?

2

Eu tenho um aplicativo Web ASP legado que usa uma DLL VB6. O aplicativo é bastante fome de memória. Eu preciso executar várias instâncias do aplicativo em uma máquina. Agora, como as VB6 DLLs são de 32 bits, a execução em um processo de 64 bits está fora - mas e se eu executasse vários pools de aplicativos do IIS de 32 bits? O limite de memória de 1,2 GB por ingresso por pool de aplicativos ou por um limite de memória para todos os processos do pool de aplicativos seria agregado? Alguém que tenha experiência com isso?

    
por GreenIcicle 16.09.2010 / 11:09

2 respostas

5

but what if I ran multiple 32bit IIS app pools? Would the memory limit of 1.2 GB per kick in per app pool, or would there by a memory limit for all app pool processes aggregated?

O limite por processo é aplicado por processo e cada pool de aplicativos está em seu próprio processo. Assim, você pode usar uma grande quantidade arbitrária de memória executando muitos pools de aplicativos.

Além disso, não é de 1,2 GB, mas de 4 GB.

Por padrão, um processo de 32 bits obtém 2 GB de "espaço de usuário", a menos que o exe seja construído com o sinalizador "Large Address Aware". Nesse caso, ele obtém 3 GB em um SO de 32 bits com o sinalizador apropriado de inicialização (que limita o kernel espaço - com suas próprias conseqüências), mas em um sistema operacional de 64 bits, ele tem 4 GB de espaço de usuário (sem sinalizador de inicialização e sem consequências na memória do kernel).

Ow3wp.exe de 32 bits% (o executável que hospeda pools de aplicativos) é construído com o sinalizador Large Address Aware, como pode ser visto na execução de dumpbin /headers w3wp.exe na pasta %SystemRoot%\SysWow64\inetsrv .

    
por 16.09.2010 / 12:09
0

Apenas para adicionar uma nuance em sua postagem original, você PODE efetivamente usar essa DLL de 32 bits de um pool de aplicativos nativos do IIS de 64 bits.

Basicamente, você tem que encapsular essa DLL usando um COM + Component Service. Isso levará 5 minutos e você poderá usar seu código-fonte ASP clássico regular, sem qualquer alteração (Server.CreateObject).

Estou usando este procedimento para alguns dos meus DLLS personalizados e para outros que não estão mais disponíveis em qualquer outra versão que não seja uma DLL de 32 bits.

O procedimento é explicado aqui: link

    
por 29.03.2018 / 03:23