I've got a legacy ASP web application that uses a VB6 DLL. The app is quite memory hungry. I need to run multiple instances of the app on one machine. Now since VB6 DLLs are 32bit only, running in a 64bit process is out – 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? Anyone who has experience with that?
Iis – Multiple 32bit processes on 64bit IIS – memory limit
32bit-64bit64-bitasp-classiciis
Related Topic
- W3wp.exe Hogs Memory – Troubleshooting IIS and ASP.NET
- Iis – Have issue with monitoring 32bit app pools running on 64bit IIS
- Iis – Warming up an IIS Application Pool automatically
- IIS – Memory Management & Thresholds with Potential Leaks
- Why is the iis 7.5 creating multiple ASPSESSIONID cookies in classic asp
Best Answer
The per process limit applies per process, and each app pool is in its own process. So you can make use of an arbitrary large amount of memory by running lots of app pools.
Also, it is not 1.2GB, but 4GB.
By default a 32bit process gets 2GB of "user space", unless the exe is built with the "Large Address Aware" flag, in which case it gets 3GB on a 32bit OS with the appropriate boot time flag (which limits kernel space—with its own consequences) but on a 64bit OS it is 4GB user space (no boot flag needed, and no kernel memory consequences).
The 32bit
w3wp.exe
(the executable that hosts app pools) is built with the Large Address Aware flag, as can be seen from runningdumpbin /headers w3wp.exe
in the%SystemRoot%\SysWow64\inetsrv
folder.