views:

57

answers:

1

We have a server machine with very good configuration on our LAN

  • 4 GB of RAM
  • 1 TB HDD
  • Quad Processor

We can have 2 types of application running on the server

  1. ASP.NET web application running under the IIS supervision
  2. Standard windows application running with administraive account.

My question is how the resources are distributed between these apps. I know the windows application can utilize high resources (100% CPU, 100% RAM etc.), but I am not sure how much access does the asp.net processes does have on these resources. It is limited for them or same like the windows application? Also if there is any limitation then how can we control this.

The reason I am asking this question is from our web application we want to execute some heavy operation. What are best way to do that. Should I go for a windows services, MSMQ, or can use asp.net account?

+1  A: 

To answer your first question, in Windows Server 2003 or 2008, there is a thing called Windows System Resource Manager, aka WSRM, that lets you allocate system resources to apps or processes. This comes with Enterprise Edition of the Server OS. Just how to allocate resources is sort of a black art; you will have to try things out, test thoroughly in all sorts of conditions.

For your second question - best way to handle "heavy operations" - I guess the easy answer there is it depends. There are many different approaches, and they fit different requirements.

MSMQ can be helpful for buffering work requests to enable processing on off-peak hours. WSRM can enable allocating and rationing of system resources. These two can be complementary, or you may view them as alternatives.


As for ASP.NET and Windows Services: ASP.NET is obviously going to be primarily useful for browser-based requests, but also possibly for REST-style requests (or similar) from other systems. ASP.NET apps will run under the w3wp.exe worker process, which is nanny'd by IIS. You get all the IIS process management goodies like, periodic restart, auto restart of stale processes, request-based activation, and etc.

Windows Services is a way to create custom apps that run on your Windows Server, that may not be request-based. One example for your scenario might be a Windows Service that starts up on a schedule, let's say at 10pm every evening, and runs through all the queued-up transactions sitting in MSMQ. When the queue is empty or at 4am, whichever comes first, the Windows Service shuts down. A Windows Service does not enjoy any of the IIS process management benefits.

Bottom line, ASP.NET and Windows Services offer different alternatives for process or application hosting and lifecycle management.


This is all just general information. To get more specific and concrete guidance from this community, you will have to make a more specific request than "how can I do heavy processing?"

Cheeso