Maximizing IIS Performance

By Dan Evers, MCSE, Web Technologies Writer,Internet Information Services Documentation Team,Microsoft Corporation

To truly maximize the performance of your Web site, you must consider many separate issues. This article is a collection of recommended performance articles that discuss tuning your IIS Web server, ASP performance, optimizing scripting languages, optimizing access to your data, optimizing client-side performance, and cache use. The Miscellaneous section includes articles ranging from performance testing and capacity planning, to system and application design.

On This Page

Tuning IIS
Active Server Pages
Data Access
Client-Side Performance

Tuning IIS

The Art and Science of Web Server Tuning with Internet Information Services 5.0

Describes the issues and approaches involved in tuning a Web server when running Internet Information Services (IIS) 5.0 on Windows 2000 Server. Discusses the importance of monitoring and testing, as well as potential hardware, software, and tools issues that may arise. Includes a section on new or changed IIS and Windows 2000 settings and features. Appendices list useful tips, registry and metabase settings, and reference resources. This document is written specifically for IIS 5.0, though much of this material may be useful to IIS 4.0 administrators.

Tuning Internet Information Server Performance

Offers an introduction to queueing to improve server performance. Examines two registry settings, specifically the ProcessorThreadMax and RequestQueueMax settings, and describes how to configure these settings in order to improve ASP Performance on an IIS 4.0 Server. Includes a list of tips on how to minimize queueing and improve response time.

Navigating the Maze of Settings for Web Server Performance Optimization

Discusses how 99.8% server availability was achieved using the Windows Load Balancing System (WLBS). Describes the registry and metabase settings and the Admin sample scripts for IIS 4.0. Examines IIS Configuration, ISAPI Filter Interaction and Behavior, Hardware Configuration and Network Architecture, and Performance Monitoring. Appendices offer an in-depth discussion of IIS 4.0 server performance tuning.

Active Server Pages

ASP Best Practices

Provides tips about how to build good ASP applications with an eye on robustness, correctness, maintainability, and performance. Discusses lessons learned, Web site design, readability and maintainability, securing your Web site, caching, and performance testing.

Building COM Components That Take Full Advantage of Visual Basic and Scripting

Describes how to design COM object libraries that take advantage of the Microsoft Visual Basic development system and scripting languages. Includes best-practice scripting advice that can easily be applied to other development languages. Major topics of discussion include creatable classes, defining properties and methods, including help in your application, and naming conventions. Includes examples and sample code.

25+ ASP Tips to Improve Performance and Style

A collection of tips for optimizing ASP applications and VBScript. Discusses caching, response buffering, TypeLib binding for ADO, and performance testing. Includes sample code and links to more resources. Suggestions in this article have been tested on and work well.

Maximizing the Performance of Your Active Server Pages

Describes ASP, choosing the right scripting language, using ActiveX server components and server scriptlets, and provides tips for getting the most out of SQL server. Discusses performance testing and the stress and performance counters. Concludes with a list of ten tips to consider when working with ASP.

Seven Steps to Stable Server-Side Components

Provides seven key steps to help you create stable and secure server-side components that scale gracefully while maintaining performance and security. Addresses why server-side components should not have a graphical user interface (GUI) and why they should have as few methods and properties as possible.

Fitch & Mather Stocks 2000: Introduction and Article List

Examines the Fitch & Mather Stocks 2000 (FMStocks 2000) sample application developed for Microsoft Windows 2000. This application simulates a public stock trading Web site on the Internet. Using the FMStocks 2000 sample application as a guide, and Microsoft Windows DNA 2000 as the framework, the article explains the major enhancements in availability, scalability, performance, and management available in Microsoft Windows 2000.

Tuning the FMStocks Application

Describes how the FMStocks application was designed with performance in mind. Discusses how the application was tuned in all three tiers: user interface, business logic, and data services and makes recommendations based on the test findings. Includes a table that describes the Windows NT Server/IIS/MTS application server tuning parameters used in this scenario. Also includes information and sample code for tuning the IIS metabase.

I Can't Stress It Enough – Load Test Your ASP Application

Introduces stress testing ASP applications and Microsoft's Web Application Stress Test tool. Presents the basics of stress testing as well as tips and tricks to run more effective tests and to modify your application based on the results of your tests.

Timing the Execution Times of your ASP Scripts

Describes how to benchmark the timing of VBScript in an ASP environment. Includes code samples that show an easy way to benchmark your code in a way that is reasonably accurate and absolutely free.

Tips to Improve ASP Application Performance

Discusses ASP performance in regards to HTML pages and response time. Examines the factors that determine response time, namely, ASP page performance, Network bandwidth, and Database issues. Offers code samples to illustrate performance tips.


A collection of links to articles specifically addressing issues of performance and performance tuning of Web sites. Topics of discussion include: caching, load testing, XML, and server-side loading, as well as poor server performance, tuning for high-volume sites, and The Microsoft® Web Capacity Analysis Tool (WCAT), to name only a few.

Java Performance Tuning

Examines the performance problems intrinsic to Java, such as array bounds checking, bytecode interpretation, and dynamic method binding. Offers coding tips and the corresponding gains you can expect from these tips, a discussion of compilers and their effects on performance, and links to more reference materials. Offers links to benchmarks sites and includes sample code.

Web Performance Tuning

Examines how to improve web site performance, estimate web site hardware and software requirements, and clarify scaling issues. Also examines client and network issues as well as server-side issues. Offers hypothetical case studies of web performance problems and their solutions. Using these case studies, discusses how to address performance problems, diagnoses, and solutions for real world situations.

Data Access

Improve the Performance of Your MDAC Applications

Provides suggestions and guidelines for improving your MDAC Application in the areas of general, middle tier, and ASP considerations. Performance issues discussed range from the strongly-typed subroutine to updating data through an SQL statement; from limiting queries to using native OLE DB providers; from proper use of cursors to ADO C++ Extensions. In most cases sample code is provided.

Performance and Scalability

A collection of links to guides and white papers that evaluate software and hardware system configurations, check performance under specific workloads, and assess the scalability of SQL Server for your organization. In the performance arena, information discussed includes: SQL Server performance results and benchmarks, TPC benchmarks and standards, and SQL Server Performance Tuning Guides. In the scalability arena, information discussed includes: database scalability for enterprise-level organizations and TerraServer: an enormous online atlas that demonstrates the scalability of SQL Server in an e-commerce situation.

Top Ten Tips: Accessing SQL Through ADO and ASP

Accessing an SQL Server database from ADO using ASP can pose many challenges. Offers specific recommendations to help improve the performance of your data access. Tips discussed range from: use of stored procedures to improve robustness to explicit creation of parameters; from avoiding the use of Binary Large Objects to choosing the right cursor. Also discusses pooling, creating useful indexes, and optimizing queries. Includes some sample code and screen shots.

Improving Performance of Data Access Components with IIS 4.0

Examines the threading model component for improving database performance. Discusses the importance of and how to enable connection pooling in IIS 4.0 and IIS 3.0. Also discusses dead server detection, cursor considerations, and network issues.

A collection of articles and tips covering a broad range of ASP and data access issues. Articles are chronologically ordered and include the title and a short synopsis to help you find the information you need quickly. Recent articles address SQL 7.0 subqueries, creating applications using SOAP and XMLHTTP, and creating dynamic list boxes with cross-browser compatibility, to name only a few. Find helpful links to other developer resources on this page.

Client-Side Performance

Asynchrony: Loved Your Performance

For the purposes of HTML, asynchrony means that events do not always occur one after the other in a particular way. For example, in a frameset, Web pages may load differently each time. This article examines how to make your script aware of asynchrony so that you can design more stable Web pages. Includes sample code.

Frequent Flyers: Boosting Performance on DHTML Pages

Discusses a variety of ways to boost performance on DHTML pages, including reducing download time to improve performance by reusing components that are common to two or more pages; reducing page size with Cascading Style Sheets (CSS) styles defined in <STYLE> elements, which are then moved into a .css file; and avoiding multiple script languages on the same page. This article also discusses IFrames, making code faster, the use of timers, and the visibility CSS. Includes sample code.

Building High Performance HTML Pages

Discusses a variety of ways to improve performance on HTML Web pages. Topics discussed range from the reuse of HTML Components and External Scripts to deferring your scripts; from authoring hyperlinks consistently to using fixed-size tables; from leveraging the HTTP Expires Header to using cache-control extensions.

Repeal the User Tax

Describes images, frames, and embedded objects in Web pages as a "time tax" charged to site visitors, specifically visitors who do not have the great fortune of a dedicated T1 line while surfing the Web. Encourages developers to consider users connecting with a 14.4K modem when determining the size of graphics, when using frames, and when deciding to embed objects in their Web pages. Discusses ways to improve the performance of Web pages in these areas.

Handling and Avoiding Web Page Errors Part 3: An Ounce of Prevention

Discusses a host of techniques used to avoid common and preventable errors faced by Web site visitors. Discusses double checking coding assumptions and syntax, error logging, verifying objects and properties and common ASP mistakes.


Caching Tutorial for Web Authors and Webmasters

Defines a Web cache, how a cache works, and how caches help improve your Web site performance. Discusses the differences between a browser and proxy cache. Describes how to control caches, including a discussion of HTML Meta Tags vs. HTTP Headers, why Pragma HTTP Headers don't work, and Cache-Control HTTP Headers. Includes tips on how to build a cache-aware Web site.

Web Caching and Content Delivery Resources

A comprehensive guide to resources about caching on the World Wide Web. Recent topics include: Lists of Content Delivery Networks, Preventing the Caching of Embedded Resources, Caching Linked Content Link .gifs, .jpgs, .css, Preventing Netscape From Caching HTTPS Objects, Using META Expires To Prevent Page Caching, and Sizing Web Caches. This site includes links to tutorials, discussion groups, and a newsletter. Also lists coming events and provides links to other resources, including industry news, research, publications, and tools.

Creating a Page Cache Object

Demonstrates how to create a highly versatile cache object that works in any COM-enabled environment. Discusses reasons to create your own cache and provides implementation details, including plenty of Microsoft® Visual C++® code.


Server Performance and Scalability Killers

George V. Reilly shares his top Ten Commandments for Killing Server Performance. Examines practices to avoid when designing and testing your applications, specifically for a Web server. Explains that by following the Ten Commandments of Killing Server Performance, you will hamper the performance and scalability of your program code.

Solutions for Poor Server Performance

Inspired by the article Server Performance and Scalability Killers by George V. Riley, this article discusses solutions for improved server performance and scalability. The discussion ranges from excessive memory allocation and slowed performance to the use of a thread pool model to the use of counters. The article also discusses load testing, the use of critical or "real world" scenarios to measure benchmarks, and the problems with global locks.

Site Server 3.0 Commerce Edition Resource Kit

Contains technical information and tools designed to help you plan, develop, deploy, and manage your e-commerce Web site. Includes performance-related information for Microsoft SQL Server™, Microsoft Windows NT® Server, and Microsoft Internet Information Server.

Performance Prescriptions for Microsoft Windows 2000

Provides tips for developing applications for Windows 2000 with improved start-up time and overall performance in mind. Many of the tips address reducing working set size and reducing the number of pages your application touches in order to increase performance. Other tips specifically address static linking to the C Runtime Library, DLLs calling DisableThreadLibraryCalls() during process attach, and declaring constants as CONST, to name only a few. Web site

A supplier of Internet performance measurement, diagnostic, and consulting services to companies with e-commerce Web sites. This site includes performance indexes, white papers, and related news. Sign up for a free newsletter or receive a free performance appraisal of your site. The Microsoft Visual C++ Implementation

Describes the techniques used to implement the application, a sample e-commerce application, and shows a range of principles you can use to achieve great performance in your own server applications. Offers a general explanation of ISAPI extension fundamentals and thread pools. Discusses the four major components of building Web pages (after a call to a database) with attention to improving the performance and time it takes to load that Web page. Also addresses managing state and database techniques, including: bind parameters, row-wise result binding, and forward-only cursors, to name only a few. Includes a list of resources and links to related information.

Writing Scalable Applications for Windows NT

Describes the robust, scalable symmetric multiprocessing (SMP) features of the NT Operating System such as threads, asynchronous I/O, and completion ports. Discusses application development and tuning in detail in relation to SMP systems. Also discusses memory usage and caches.

Hints for Computer System Design

A collection of advice for good computer system and application design. Hints are illustrated by a number of examples, mostly drawn from systems the author has worked on, e.g. Ethernet local area network and the Grapevine mail system. The author discusses system design according to the principles of functionality, speed, and fault-tolerance.

Setting Performance Goals for Duwamish Books, Phase 4

Discusses The Duwamish Books application, a fictitious online bookstore used for testing the performance and scalability of a Web server. Discusses the methodology used to calculate the performance goals for Phase 4 of the Duwamish Books sample application, and provides a sample calculation to determine performance goals for a hypothetical business scenario.

Designing High-Performance ISAPI Applications

Explains that while ISAPI is the highest performance interface for Web applications, performance and scalability considerations should not be ignored. Provides suggestions for improving the performance and scalability of your ISAPI extensions.

Network Load Balancing Technical Overview

Discusses Network Load Balancing, a clustering technology included in the Windows® 2000 Advanced Server and Datacenter Server operating systems, which enhance the scalability and availability of mission-critical, TCP/IP-based services, such as Web, Terminal Services, virtual private networking, and streaming media servers. Describes the key features of this technology and explores its internal architecture and performance characteristics in detail.

Building Large Scale Web Applications with Visual FoxPro

Discusses Web development in a team environment using Visual FoxPro. Examines how performance and scalability affect Visual FoxPro development with discussions on performance, scalability, load balancing, tuning applications, and Internet Information Server. Other topics include security for Web applications, site maintenance, management related to Visual FoxPro, and tracking site statistics.

Compaq ActiveAnswers Web site

A dynamic set of tools, forums and information to help you plan, deploy and operate enterprise solutions. Designed for IT managers, VARs, systems integrators and consultants, ActiveAnswers simplifies solutions to help you achieve faster returns on your IT investments.

Windows Web Services (IIS) - Tips & Tricks

A collection of links to articles with tips and tricks for troubleshooting, optimizing, and improving the performance of IIS. Areas of consideration include ASP, InetMonitor, Performance Tuning, and Remote Administration.

Windows Web Services (IIS) - Maintain

A collection of links to articles on IIS 4.0 and 5.0 topics. Major areas of consideration include: Optimizing, Monitoring, and Feature Usability. Recent articles include: Custom Error Messages, Configuring in IIS 5.0, Analyzing Logs from IIS 4.0 Exception Monitor, and Administering FrontPage 2000 Server Extensions in the MMC

Vulcan Documents

Describes what a document is and discusses the importance of identifying your target audience. Also discusses Web site personality and why you need to anticipate the questions that your audience may want answered.

Using HTTP Compression On Your IIS 5.0 Web Site

Using HTTP Compression reduces the network bandwidth used to transfer each file from the server to the client. Additionally, HTTP Compression helps to reduce the download time and improve performance for end-users. Discusses what HTTP Compression is, how it works, how to decide if you should use it, and describes how to enable it on your Web server. Gives scenarios that show how you can customize the configuration of HTTP Compression.


Special thanks to George V. Reilly of the Microsoft Internet Information Server team for providing direction on this project.