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.

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

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.

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 http://www.microsoft.com and work well.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Cache

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.

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.

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.

Miscellaneous

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.

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.

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.

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.

Describes the techniques used to implement the Nile.com 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.

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.

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.

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.

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.

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.

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.

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.

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 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.

Acknowledgements

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