What is the IIS application pool size used for? Why is it important?

12,625

As noted in the comments, the question is ambiguous.

There is a Private Memory Limit (KB), which defines how large an application pool can grow in system RAM before it gets automatically recycled. For example, when you open Task Manager (taskmgr.exe), you'll see an instance of w3wp.exe running for each application pool. Add the Working Set column. I believe that corresponds to the Private Memory Limit setting.

There is a CPU Limit which dictates how much CPU an application pool is permitted to consume over a period of time. Its default is zero, meaning no limit.

There is a Queue Length setting which dictates how many simultaneous requests can be serviced before the server starts returning 503s. The default is 1000.

There is an Idle timeout, which defaults to 20 minutes. After 20 minutes of inactivity, the application pool stops. I always turn that off, as it takes time for the first request to process from an inactive application pool.

There is an ability to schedule a recycle at regular intervals or at one or more specific times. Perhaps an untimely recycle is interfering with a long-running operation, and the customer is having requests be canceled as a result.

Those are all of the usual suspects I can think of.

Share:
12,625

Related videos on Youtube

PeanutsMonkey
Author by

PeanutsMonkey

Updated on November 22, 2022

Comments

  • PeanutsMonkey
    PeanutsMonkey over 1 year

    I have had a request come through to increase the pool size in IIS which I assume to be the application pool size.

    I have attempted to search for more information regarding what the pool size is, what it does, its importance as well as caveats in increasing its size.

    Am unsure where to find it in IIS 7 and 7.5 as well as what the default size is.

    Does changing the pool size also affect web gardens?

    • ravi yarlagadda
      ravi yarlagadda almost 12 years
      Do you have more context on this request? I wonder if they mean the memory limit?
    • Andrew Smith
      Andrew Smith almost 12 years
      It's a number of workers. By default, there is 1 worker. On each worker, you can setup CPU affinity mask.
    • PeanutsMonkey
      PeanutsMonkey almost 12 years
      @Shane Madden - Sorry I don't and no it is not concerning memory.
    • PeanutsMonkey
      PeanutsMonkey almost 12 years
      @Andrew Smith - What do you mean by CPU affinity mask? What refers to the number of workers?
    • ravi yarlagadda
      ravi yarlagadda almost 12 years
      @PeanutsMonkey You should probably get some clarification on the request, then. There are a dozen different things they could mean.
    • PeanutsMonkey
      PeanutsMonkey almost 12 years
      @Shane Madden - I did get clarification and it is to do with the number of connections a particular application is allowed. Is there a specific setting that allows the control of this?
    • ravi yarlagadda
      ravi yarlagadda almost 12 years
      @PeanutsMonkey There's a limit on the number of requests before an app pool's worker process is recycled, but that can't really be referred to as a "size" limit, since it's a process lifetime limit. IIS doesn't have limits on concurrent connections.. Could they be referring to the application code itself? Does it maybe have a database connection pool configured in the application that IIS is running?
    • PeanutsMonkey
      PeanutsMonkey almost 12 years
      @Shane Madden - If you provide that as an answer with elaboration on the process lifetime limit, I'll accept it as an answer.
  • PeanutsMonkey
    PeanutsMonkey almost 12 years
    Thanks. When you say AppPool I take it you mean application pool. In the first example of private memory limit, what do you mean by it defines how large an application pool can be? Secondly, what does the value zero mean when set on the CPU Limit? If the queue length is 1000, does it mean only 1000 concurrent simultaneous requests can be made at any given time? How does this affect the number of worker process?
  • designarti
    designarti almost 12 years
    I've updated my response to eliminate some of the ambiguities you called out.
  • designarti
    designarti almost 12 years
    The queue length does not affect the number of worker processes. They are independent. You might see this SO answer regarding how many worker processes you need.
  • designarti
    designarti almost 12 years
    By definition, the queue length dictates how many requests will be queued for processing, not the number of requests that can be processed simultaneously. See Managing, Tuning, and Configuring Application Pools in IIS 7.0.