programming4us
 
Windows
 

Windows Server 2012 : Scalable and elastic web platform (part 4) - IIS CPU throttling

3/15/2014 2:04:03 AM

4. IIS CPU throttling

Managing CPU resources on farms of web servers in a multi-tenant shared hosting environment can be challenging. When you are hosting websites and applications from many different customers, each of them wants to get its fair share of resources. It’s clearly undesirable when one customer’s site consumes so much CPU resources that other customers’ sites are starved of the resources they need to process client requests.

IIS CPU throttling is designed to prevent one website from hogging all the processing resources on the web server. Previous versions of IIS included a rudimentary form of CPU throttling that basically just turned off a site once the CPU resources being consumed by the site reached a certain threshold by killing the worker processes associated with the site. Of course, this had the undesirable effect of temporarily preventing clients from accessing the site. As a result, web administrators sometimes used Windows System Resource Manager (WSRM) with IIS to control the allocation of processor and memory resources among multiple sites based on business priorities.

CPU throttling has been completely redesigned in IIS 8 to provide real CPU throttling instead of just on/off switching. Now you can configure an application pool to throttle the CPU usage so that it cannot consume more CPU processing than a user-specified threshold, and the Windows kernel will make sure that the worker process and all child processes stay below that level. Alternatively, you can configure IIS to throttle an application pool when the system is under load, which allows your application pool to consume more resources than your specified level when the system is idle because the Windows kernel will throttle the worker process and all child processes only when the system comes under load.

Configuring CPU throttling

CPU throttling can be configured in IIS 8 at the application pool level. To do this, open the Advanced Settings dialog box for your application pool in IIS Manager and configure the settings in the CPU section (see Figure 3).

Configuring CPU throttling for an application pool.

Figure 3. Configuring CPU throttling for an application pool.

You can also configure a default CPU throttling value for all application pools on the server by clicking Set Application Pool Defaults in the Actions pane when the Application Pools node is selected in IIS Manager.

CPU throttling configuration

CPU throttling has been included in prior versions of IIS, but for IIS 8.0, it has received a major reworking under the hood.

In earlier versions of IIS, a polling mechanism was used to check the CPU usage periodically and take action if it was above the configured threshold for a long enough time. The problem with this approach is that CPU usage wasn’t truly limited—it could increase far beyond the configured limit and remain high for a period of time before the polling mechanism noticed. When the CPU was determined to be above the threshold, the only “corrective” action available was to kill the IIS worker process (W3pw.exe). When the process was killed, IIS also prevented a new process from being started for the offending application for a period of time so that it would not immediately come back and take over the CPU again. Any requests to the application during that time would fail, resulting in a poor user experience.

For IIS 8.0, we worked with the Windows Kernel team to implement true throttling of CPU usage. In place of the old polling design, the kernel will now ensure that CPU usage stays at the configured level. With this change, we no longer need to kill the W3WP process to halt an offending application, so the application stays active and responsive to user requests even when it is being throttled.

There are two new options for how CPU throttling works in IIS 8.0. The Throttle configuration option will keep the CPU near the configured limit at all times. The ThrottleUnderLoad configuration option will keep the CPU near the configured limit when there is contention for CPU resources, but it will let it consume more CPU if the server would otherwise be idle. In this model, once other processes need additional CPU resources, the IIS worker process are throttled to ensure that the other processes get the resources they need.

 
Others
 
- Windows Server 2012 : Scalable and elastic web platform (part 3) - Centralized SSL certificate support
- Windows Server 2012 : Scalable and elastic web platform (part 2) - Server Name Indication
- Windows Server 2012 : Scalable and elastic web platform (part 1) - NUMA-aware scalability
- Setting Up Windows 8 Family Safety (part 7) - Viewing Family Safety Online Reports
- Setting Up Windows 8 Family Safety (part 6) - Viewing Family Safety Activity Reports
- Setting Up Windows 8 Family Safety (part 5) - Blocking and allowing Apps
- Setting Up Windows 8 Family Safety (part 4) - Controlling Windows Store and game play
- Setting Up Windows 8 Family Safety (part 3) - Setting time limits
- Setting Up Windows 8 Family Safety (part 2) - Setting Web Filtering
- Setting Up Windows 8 Family Safety (part 1) - Getting to the Family Safety page
 
 
REVIEW
 
- First look: Apple Watch

- 10 Amazing Tools You Should Be Using with Dropbox

- Sigma 24mm f/1.4 DG HSM Art

- Canon EF11-24mm f/4L USM

- Creative Sound Blaster Roar 2

- Alienware 17 - Dell's Alienware laptops

- Smartwatch : Wellograph

- Xiaomi Redmi 2
 
VIDEO TUTORIAL
 
- How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 1)

- How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 2)

- How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 3)
 
Popular tags
 
Video Tutorail Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8 BlackBerry Android Ipad Iphone iOS
 
Top 10
 
- How To Add A New Account in MS Outlook 2013
- Get Android & Mac OS X Style Gadgets For Windows 7 & Windows 8 With XWidget
- How To Activate Microsoft Office 2013
- How To Install Actual Facebook App On Kindle Fire
- How To Create, View And Edit Microsoft Office Files On Kindle Fire
- Download Attractive Business PowerPoint Templates For Free At SlideHunter
- How To Use And Enable Hibernate & Sleep Mode In Windows 8
- How To Get Microsoft Office 2013 Trial Product Key From Microsoft
- Complete List Of Windows 8 Keyboard Shortcuts [Hotkeys]
- How To Bypass Torrent Connection Blocking By Your ISP