Web Gardens

Discussion in 'ASP .Net' started by =?Utf-8?B?QWxhbiBQYXJ0cmlkZ2U=?=, Dec 2, 2003.

  1. We are hosting our ASP.NET application on a multi-proc (4) machine but we're using InProc session state. Machine.Config has webGarden=false at the moment and only one ASP.NET worker process in running. Therefore, my guess is that running on a multi-proc box is wasted because only 1 CPU is being used - is this correct

    My understanding is that in order to make use of all 4 CPU's we need to

    1. Change machine.config (webGarden=true + cpuMask=0x0f
    2. Configure web.config to use either the StateServer or SQL Server state machine
    3. Make all session state types serializabl
    4. Start the StateServer service (or use SQL Server

    Are my thoughts correct

    Or....is there anyway I can make full use of the 4 CPU's but keep InProc session state? I guess this means I would effectively be giving session affinity to a CPU because each session must be served from the same CPU \ ASP.NET worker process \ InProc session state to read\write to session state. I.e. To prevent subsequent requests from being served from a different ASP.NET worker process and thus not able to access stuff put into session state on a previous request - however, this sounds like a very bad idea

    All thoughts on this appreciated

    TIA.
     
    =?Utf-8?B?QWxhbiBQYXJ0cmlkZ2U=?=, Dec 2, 2003
    #1
    1. Advertising

  2. First, you note that there is just one ASP.NET Worker process, and conclude
    that it runs on just one CPU. This is incorrect. Processes contain
    multiple threads, and those threads can take advantage of multiple CPUs.
    Maybe it's non-intuitive, but a single process can span multiple processors.
    Nonetheless, for reasons other than performance, you probably want a web
    garden.

    2nd: Are you using IIS6 and WS2003? or some earlier version of Windows
    Server?
    The settings are different.

    If you use WS2003 and IIS6, by default ASP.NET uses the IIS 6.0 worker
    process isolation mode. The admin of this is done through the IIS6 MMC
    panels, and not through the .NET machine.config file. In particular, many
    of the System.web\processModel settings in machine.config mostly do not
    apply, they are silently ignored. This includes @webGarden. Check the
    technet doc describing how and when to configure web gardens, and the
    implication for session state.
    http://www.microsoft.com/technet/pr...r2003/proddocs/deployguide/iisdg_net_hepj.asp
    http://msdn.microsoft.com/library/en-us/cpguide/html/cpconperformanceapplicationpoolsettings.asp

    On the other hand, if you are using IIS5 (W2000), then the machine.config
    settings apply, including @webgarden and @cpumask. When using webGarden in
    this way, each ASP.NET process has its processor affinity set to a
    particular CPU. So in this special case, each single process is confined to
    a single CPU.

    Here's some doc that discusses processor affinity. This is a per-process
    property (not per-thread).
    http://msdn.microsoft.com/library/e...nosticsProcessClassProcessorAffinityTopic.asp

    One <processModel> thing that applies in both WS2003 and W2000 is the number
    of IO threads per process.

    In the end, you have to test it to see what works best in your situation.
    Each app is different. There is no "one-size" solution, which is why the
    options are there (InProc vs StateServer vs SQL, web garden vs not, # of io
    threads, etc). Also remember performance (max throughput) is not the only,
    and should probably not be the primary, criteria for judgement. Probably
    you want to consider reliability or average response time, as higher
    priorities than max throughput.

    -Dino


    "Alan Partridge" <> wrote in message
    news:...
    > We are hosting our ASP.NET application on a multi-proc (4) machine but

    we're using InProc session state. Machine.Config has webGarden=false at the
    moment and only one ASP.NET worker process in running. Therefore, my guess
    is that running on a multi-proc box is wasted because only 1 CPU is being
    used - is this correct?
    >
    > My understanding is that in order to make use of all 4 CPU's we need to -
    >
    > 1. Change machine.config (webGarden=true + cpuMask=0x0f)
    > 2. Configure web.config to use either the StateServer or SQL Server state

    machines
    > 3. Make all session state types serializable
    > 4. Start the StateServer service (or use SQL Server)
    >
    > Are my thoughts correct?
    >
    > Or....is there anyway I can make full use of the 4 CPU's but keep InProc

    session state? I guess this means I would effectively be giving session
    affinity to a CPU because each session must be served from the same CPU \
    ASP.NET worker process \ InProc session state to read\write to session
    state. I.e. To prevent subsequent requests from being served from a
    different ASP.NET worker process and thus not able to access stuff put into
    session state on a previous request - however, this sounds like a very bad
    idea?
    >
    > All thoughts on this appreciated.
    >
    > TIA.
     
    Dino Chiesa [Microsoft], Dec 2, 2003
    #2
    1. Advertising

  3. Ok. Thanks for the info. We're using Win2K + IIS5.

    When performing some load tests we're seeing that although all 4 procs are being used, 1 in particular is being stressed more than the others.

    I know that implementing a web garden has other benefits, but would we get a performance increase by moving to this configuration? I appreciate that threads spun off my the asp.net worker process can span the other cpu's.
     
    =?Utf-8?B?QWxhbiBQYXJ0cmlkZ2U=?=, Dec 2, 2003
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Bhuwan Bhaskar
    Replies:
    2
    Views:
    361
    Bhuwan Bhaskar
    Oct 24, 2007
  2. Brendan Kay
    Replies:
    5
    Views:
    640
    Brendan Kay
    Jul 29, 2008
  3. GregStevensTX

    Application Pools or Web Gardens

    GregStevensTX, Jun 30, 2009, in forum: .NET
    Replies:
    0
    Views:
    307
    GregStevensTX
    Jun 30, 2009
  4. Andrew Durstewitz

    ASP Sessions and Web Gardens

    Andrew Durstewitz, Dec 5, 2003, in forum: ASP General
    Replies:
    2
    Views:
    190
    Ken Schaefer
    Dec 7, 2003
  5. johannes falcone
    Replies:
    2
    Views:
    95
    Kevin Walzer
    Feb 1, 2014
Loading...

Share This Page