title: IIS Worker Process CPU limit with ThrottleUnderLoad
body: <p>I have following IIS setup</p>
  <pre><code>Server
  |
  |-Application Pools
  |-Sites
     |
     |-Website1
        |
        |-Application1
        |-Application2
  </code></pre>
  <p>Website1 is running with AppPool WebsiteAppPool
  Application1 is running with App Pool Application1AppPool
  Application2 is running with App Pool Application2AppPool</p>
  <p>WebsiteAppPool is with CPU limit of 50% (i.e. 50000) and limitaction ThrottleUnderLoad
  Application1AppPool is with CPU limit of 80% (i.e. 80000) and limitaction ThrottleUnderLoad
  Application2AppPool is with CPU limit of 50% (i.e. 50000) and limitaction ThrottleUnderLoad</p>
  <p>I was performing load testing on Application1 and other applications are idle.</p>
  <p><a href="https://i.stack.imgur.com/OhBpC.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OhBpC.png" alt="enter image description here" /></a></p>
  <p>Red line is CPU consumption of Application1AppPool, Blue line is CPU consumption of total machine processor time.</p>
  <p>When Application1AppPool is at high CPU usage, application started to get errors and response time is unacceptable range.</p>
  <p>Now my question is even after giving CPU limit to 80% to Application1AppPool, why it is reaching to 100% (red line) (in the screen it shows near 90% but actually it started to reach 100% when we see less time interval graph) but my machine's CPU is hardly being used (blue line). I was expecting total processor process time to be around 80%.</p>
  <p>ThrottleUnderLoad means it can consume more CPU than 80% if there is no CPU contention i.e. no other process is demanding CPU. So theoretically, Application1AppPool was allowed to use more available CPU, which is not happening.</p>
  <p>Any idea what am I missing here?</p>