Question

I have migrated one ASP.NET v4.0 application to a new server running under a Win2008 Server x64 operating system. Since it seemed to be no problem with the migrated asp.net application when the application pool was set to "Enable 32-bit applications" = False (should be default on x64 IIS), I left it running in 64-bit mode.

Then it turned out, that user sessions are interrupted very often, because the worker process exceeds its virtual memory limit quite soon. From this reason I have tested the same application and the same application pool with just a single modified setting - I toggled the "Enable 32-bit applications" to True to let it run in "WOW64" mode; everyting else remained as it was. I have compared the memory amount consumed by the worker process in both modes using absolutely the same user work scenario and the result was bit shocking to me:

  • the workload consumes approx. 150MB while running in WOW64 32-bit mode
  • and an identical workload consumes approx 800MB in "default" 64-bit worker process mode.

I have expected that it might happen that the worker process will consume a little more memory in 64-bit mode, but this difference is far too huge.

Is such a huge memory impact considered normal? Is it possible to reduce/fix it somehow?

Was it helpful?

Solution

After more investigation it seems that there is no memory issue.. New server just has more memory and while running on a 64-bit OS application pool simply is allowed to allocate larger memory resource. It looked like a memory leak, but since from a certain amount of allocated RAM the process stops consuming additional memory, it does not seem to be a memory issue at all. Thanks to all respondees..

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top