Software Related Information
About Performance Monitoring
Performance monitoring is the process of capturing and analyzing performance data from various components of your server environment (including applications, memory, CPU, hardware, and your network) to locate bottlenecks. A bottleneck can be caused by processes backing up because the server does not have enough processor cycles to efficiently complete a request, poorly designed code in a custom application, or a multitude of problems related to the network and hardware.
By monitoring performance and analyzing performance data, you can begin to see patterns in the data that will help you locate bottlenecks. After you have located a bottleneck, you can make changes to the component to improve performance. Bottlenecks can occur anywhere in your server environment at any time, so it is important to capture baseline performance information about your system and monitor performance regularly.
You can monitor performance by writing a program that uses the Performance Monitor registry interface or the Performance Data Helper (PDH) interface, or by using System Monitor, Performance Logs and Alerts, and monitoring tools provided with Windows. The technique you choose typically depends on how much data you want to monitor and what kind of analysis you want to perform on that data.
Response Time and Resource Utilization
Response time represents the time (often an average) that elapses between the issue of a request and the return of the requested data (or notification of the server's inability to provide it). You can use response time to measure your server's and Web sites' performance. When your server is processing a large number of requests (under load), requests may take longer to complete than if the server were unloaded. For user requests, this can result in increased response time for clients. If the server is under an excessive load, users may perceive the server as slow or unresponsive.
The ability of IIS to handle heavy loads and maintain good response time is primarily dependent on the performance and scalability of your applications. Factors such as network latency (the time it takes for information to be transferred between computers in a network) and database processing also affect response time, but these factors may be out of your control. You can improve response time through better application design and by using the IIS features designed to manage your server resources (a list of features is included at the end of this topic), so heavy loads do not cause bottlenecks or overload the World Wide Web Publishing Service (WWW service).
By monitoring your server performance, you can determine if poor response time is actually a symptom of a bigger problem on the server side (for example a poorly designed application, poor resource utilization, or improper cache settings), or if the problem is network latency. Before making any changes to your system, use the System Monitor tool to establish a performance baseline about your system and to monitor memory, CPU utilization, and disk space to make certain your system has enough of these resources. You can also use System Monitor to see how often your system reads from disk. If your system is accessing the disk often, see Monitoring and Tuning Hardware Performance for ways to decrease hard-disk bottlenecks.
If, after monitoring your hardware, you determine that your server environment has enough resources, you must monitor and tune your applications. For more information, see Monitoring and Tuning Web Application Performance .
If you need to redesign an application to improve response time, consider replacing Microsoft Visual Basic® Scripting Edition (VBScript) applications with managed-code applications developed with C# or Microsoft Visual Basic .NET. Test your applications at twice the expected load to see how they perform. You can load-test and measure response time by using the Microsoft Web Application Stress tool and the Application Center test tool.
If, after monitoring your hardware, you determine that a lack of server resources is causing problems, consider adding resources like memory and CPUs. You should also consider enabling the following features to help manage system resources:
- Application pool queue length limits : Prevents too many requests from queuing up and overloading the system.
- CPU monitoring : Includes several features that control system resources used by a process or group of processes.
- Bandwidth throttling : Controls the maximum amount of bandwidth dedicated to Internet traffic on a server.
- Process recycling : Enables you to configure IIS to periodically restart worker processes in an application pool for better process management.
- Web gardens : Creates an application pool that has multiple worker processes serving the requests routed to that pool, which reduces lock contention.
Tags: -
Related entries:
Last update: 2006-12-02 12:44
Author: Oleg
Revision: 1.0