Monitoring and Optimizing Internet Information Server

We will look at material covered in the Monitoring and Optimizing section of Microsoft's Implementing and Supporting Microsoft Internet Information Server 4.0 exam (70-087). Microsoft describes its objectives as:

  • Maintaining logs for performance tuning and auditing. Tasks here include importing log files into, and analyzing files with, a Usage Import and Report Writer database. Automating this process is also described. Other tasks include configuring the logging features of the WWW and FTP services.
  • Monitoring the performance of various functions, such as HTTP and FTP sessions, using Performance Monitor.
  • Analyzing performance to identify bottlenecks and other network, disk, and CPU-related issues.
  • Optimizing the performance of the IIS.
  • Optimizing the performance of the Index Server.
  • Optimizing the performance of the SMTP Service.
  • Optimizing the performance of the NNTP Service.
  • Interpreting performance data.
  • Optimizing a Web site using Content Analyzer.

Topics on this Page
down Logging
down Using Performance Monitor
down Analyzing Performance
down Optimizing IIS Performance
down Optimizing Index Server Performance
down Optimizing SMTP Service Performance
down Optimizing NNTP Service Performance
down Interpreting Performance Data
down Optimizing Web Sites With Content Analyzer
down Summary

Logging back to top

In this section, you will learn to import log files into, and analyze files with, a Usage Import and Report Writer database, as well as automating this process. The configuration of WWW and FTP service logs will also be described.

Logs that are created by the IIS can be imported into the Report Writer and Usage Import database for analysis. Both utilities connect to this database when launched. Its name is displayed in the status bar of either application's screen, as shown in Figure 6.1 (lower left).

F06_01

Figure 6-1 Viewing the Report Writer and Usage Import Database Name.

The Usage Import utility reads IIS log files and transfers their data into a relational database. Report Writer reads the information in the database to perform statistical analysis. This system is used because relational database files do not contain redundant information and are therefore 10 to 20 percent smaller than log files. In addition, the use of a database permits far more complex data analysis options.

Importing Logs Using Usage Import

To import a log, such as that of the IIS Web service, first launch the Usage Import utility from the Microsoft Site Server Express 2.0 program group in the Windows NT 4.0 Option Pack program group. Initially, you might be greeted with the message shown in Figure 6.2 if no sites have been configured in the Server Manager application.The log file format for the data source that is being imported is selected in the Log Data Source Properties dialog box as shown in Figure 6.3.

F06_02

Figure 6-2 Initial Usage Import Dialog Box.

F06_03

Figure 6-3 Choosing a Log File Format.

The choice you make here will depend on the logging format you established when you configured the Web and FTP services.

  • Microsoft IIS Log Format. Used to record such basic information as username, request time, client IP address, bytes received, and HTTP status in a comma-delimited ASCII file.
  • NCSA Common Log File Format. Used to record such information as remote host name, username, request type, bytes received, and HTTP status in a space-delimited ASCII file using the format developed by the National Center for Supercomputing Applications (NCSA).
  • ODBC Logging. Used to record such information as client IP address, username, request date, request time, HTTP status, bytes received, bytes sent, action carried out, and the target.
  • W3C Extended Log File Format. Used to record such information as request date, request time, client IP address, server IP address, server port, and HTTP status in a space-delimited ASCII file format developed by the World Wide Web Consortium (W3C). This is the default setting.

Press the OK button once you have selected a format to open the Server Properties dialog box, as shown in Figure 6.4.

Figure 6-4 Configuring the Server Properties Dialog Box.

Here you can choose between Web and FTP services in the Server type pop-up menu. The document that is displayed to a client when it first logs on (e.g., default.asp, index.htm) should be added to the Directory index files field. Other fields in the Server configuration section include IP address and IP port fields. The server's local time zone and local domain are configured in the Hosting facility section. This is used to differentiate internal hits from external hits.

Press the OK button to open the Site Properties dialog box, as shown in Figure 6.5.

Figure 6-5 Configuring Basic Site Properties.

Here enter the URL for the site's home page and its local directory path under the Basics tab.

Switch to the Excludes tab to create a list of host names that will not be included in the log import, as shown in Figure 6.6. For example, if you wish to measure only external hits, you might exclude hosts from your own organization's domain. You can also exclude images, which can be numerous and which are not very useful to track since they are downloaded along with the referring Web page.

Figure 6-6 Excluded Hosts and Images.

Press the OK button to open the Usage Import window, with Log File Manager and Server Manager windows displayed, as shown in Figure 6.7.

Figure 6-7 Working with the Usage Import Window.

In the Server Manager window, you can configure the structure of the sites being logged. This must take place first. Logs are then organized, imported, and analyzed through the Log File Manager window. Use the Browse button to locate the log file that is to be imported, then select the Start Import command from the File menu to begin the process. You can watch the progress of the Import in a status dialog box like the one shown in Figure 6.8.

F06_08

Figure 6-8 Watching the Status of a Log File Import.

Once the log file has been imported, a summary is displayed in a dialog box like the one shown in Figure 6.9.

F06_09

Figure 6-9 Viewing the Import Summary Dialog Box.

Here press the OK button to open the Usage Import Statistics dialog box, which contains further summary information, as shown in Figure 6.10.

F06_10

Figure 6-10 Viewing Usage Import Statistics.

Press the Close button to dismiss this dialog box and end the import process.

Viewing Logs Using Report Writer

To create a report from an imported log file, launch the Report Writer utility from the Microsoft Site Server Express 2.0 program group in the Windows NT 4.0 Option Pack program group. This will open the Report Writer dialog box shown in Figure 6.11.

F06_11

Figure 6-11 Opening a File in Report Writer.

Use the From the Report Writer catalog radio button to analyze data in a pre-defined report, as shown in Figure 6.12. In future sessions you can create your own report by using the From scratch option or use a saved report template via the Open one of your own creations radio button.

Figure 6-12 Choosing a Report from the Report Writer Catalog.

Two types of reports exist here. Detail Reports show everything that has been retrieved from the database. Summary Reports show overall statistics in an abstract. Select a report in the Report Writer catalog by reading its description, then press the Next button to open the dialog box, as shown in Figure 6.13.

Figure 6-13 Selecting the Data to Analyze.

Here choose the amount of data that will be included in the report. This can be every request imported from the log file, or just those requests that occurred in a given time period. Press the Next button to set further filtering options in the dialog box shown in Figure 6.14.

Figure 6-14 Setting Filters with Boolean Logic.

Here you can create filters using Boolean logic to restrict the amount and type of information reported. For example, you might choose to restrict the report to only those requests that have come from a specific domain by using an expression such as "domain=microsoft.com." Press the Finish button to open the Date properties dialog box, as shown in Figure 6.15.

F06_15

Figure 6-15 Setting Sort and Presentation Options.

Here you can establish the parameters that govern how the report data will be sorted and presented. Press the OK button to open the Report document dialog box, as shown in Figure 6.16.

Figure 6-16 Choosing a File Name and Format.

Here name the file and choose the format in which it should be created. When you press the OK button, the process will begin and you will see a dialog box like the one in Figure 6.17.

F06_17

Figure 6-17 Viewing the Analysis Process.

Depending on the format you chose for the output file, you can then view the report in an application such as Internet Explorer (see Figure 6.18).

Figure 6-18 Viewing the Results of the Report Writer Analysis.

Configuring WWW Service Logging

As previously described, logging must be enabled for the Web service to create the files Usage Import and Report Writer will work with. To do this, launch the Internet Service Manager application from the Microsoft Internet Information Server program group in the Windows NT 4.0 Option Pack program group. In the Microsoft Management Console window, choose a Web site and open the Web Site Properties dialog box (see Figure 6.19).

Figure 6-19 Enabling Web Site Logging.

Here you may ensure that traffic statistics are being recorded by enabling the Enable Logging checkbox. You may also select the file format that will be used, as previously described. If you select the W3C Extended Log File Format option, several additional options become available when you press the Properties button to open the Extended Logging Properties dialog box as shown in Figure 6.20.

Figure 6-20 Enabling General Logging Properties.

Under the General Properties tab, you can establish the time interval or size restrictions that will trigger new log file creation. Each new log is named in a format that includes the date (e.g., "ex990104.log"). You should use the Log file directory field to establish the Log file directory on a partition that has plenty of space. Log files commonly grow to 100 Mbytes or more.

Under the Extended Properties tab, as shown in Figure 6.21, you can establish which items will be logged. These are described in Table 6.1.

Figure 6-21 Enabling Extended Logging Properties.

Table 6.1 W3c Extended Logging Options

Option
Result
Date

Logs the date on which an action occurred.

Time

Logs the time at which an action occurred.

Client IP Address

Logs the IP addresses of computers that access the server.

User Name

Logs the names of people who access the server.

Service Name

Logs the names of clients' Internet services.

Server Name

Logs the name of the server on which logging is enabled.

Server IP

Logs the IP address of the server on which logging is enabled.

Server Port

Logs the IP ports that clients are accessing.

Method

Logs the actions that clients perform.

URI Stem

Logs the resources clients are accessing, such as Web pages.

URI Query

Logs the search strings clients are attempting to match.

HTTP Status

Logs the status of client actions, using HTTP terminology.

Win32 Status

Logs the status of client actions, using Windows NT terminology.

Bytes Sent

Logs the amount of data sent by the server.

Bytes Received

Logs the amount of data received by the server.

Time Taken

Logs the amount of time that elapses in performing requested actions.

User Agent

Logs the name of the client Web browser.

Cookie

Logs the contents of cookies sent or received by the server.

Referrer

Logs the URL from which the user was directed to the server.



Configuring FTP Service Logging

As with the Web service, logging must be enabled for the FTP Service to create the files that Usage Import and Report Writer will work with. To do this, launch the Internet Service Manager application from the Microsoft Internet Information Server program group in the Windows NT 4.0 Option Pack program group. In the Microsoft Management Console window, choose a FTP site and open the FTP Site Properties dialog box (see Figure 6.22).

Figure 6-2 Enabling FTP Service Logging.

As previously described, you can also configure extended options by pressing the Properties button.

Warning In order to view a Web or FTP site log, you must first stop the service.

Configuring Usage Import

To configure Usage Import's numerous preferences, select the Options command under the Tools menu to open the Usage Import Options dialog box, as shown in Figure 6.23.

Figure 6-23 Import Options in the Usage Import Options Dialog Box.

Import Tab

Under the Import tab are options relating to import pre-processing, processing, and post-processing.

Enabling the Drop database indexes checkbox in the Before import section can be a time saver. Database indexes are created to aid in analysis. Their creation can take a while. By enabling this option, you direct Usage Import to forgo the creation of indexes during the import. Instead, they are created after the data import.

By enabling the Adjust requests timestamps to checkbox in the During import section, you can force all time records to be recorded relative to the given timezone. Here you can also direct the utility to ignore hits from search engines by enabling the Exclude spiders checkbox (as described further on).

In the After import section, you can enable the Lookup unknown HTML file titles checkbox to direct Usage Import to add the title (e.g., TITLE tag) to HTML document file names. Similarly, the Resolve IP addresses checkbox directs Usage Import to associate IP addresses with host names. If you enable the Whois query for unknown domains checkbox, Usage Import will attempt to match a domain name with an organization name.

IP Resolution Tab

Under the IP Resolution tab, you can establish several parameters relating to the way Usage Import will resolve IP address-to-host name mappings, as shown in Figure 6.24.

Figure 6-24 IP Resolution Options in the Usage Import Options Dialog Box.

You can establish the number of days that will elapse between IP address lookups in the Cache IP resolutions for X days field. You can establish the number of seconds that will elapse before Usage Import gives up on the resolution process in the Timeout a resolution attempt after X seconds field. You can establish the batch size for IP address resolution in the Use a resolution batch size of X IPs field.

Log File Overlaps Tab

Under the Log File Overlaps tab, you can establish settings for handling redundant information, as shown in Figure 6.25.

Figure 6-25 Log File Overlaps Options in the Usage Import Options Dialog Box.

Overlaps are redundant information that is added to the database when records are inadvertently re-imported, when logging actions are interrupted and resumed, when log files are concatenated, and so on. Setting time limits here can help reduce overlaps. In the If an overlap is detected pop-up menu, you can establish the action that will be taken when an overlap occurs: Import All Records, Stop the Import, Stop All Imports, and Discard Records and Proceed.

Default Directories Tab

Under the Default Directories tab, you can establish the location to which log and import files will be saved, as shown in Figure 6.26.

Figure 6-26 Default Directories Options in the Usage Import Options Dialog Box.

IP Servers Tab

Under the IP Servers tab, you can configure further address resolution information, as shown in Figure 6.27.

Figure 6-27 IP Servers Options in the Usage Import Options Dialog Box.

The host name and port number you specify here for HTTP Proxy is used in all HTML title lookups. The Local domain of DNS server field should contain the name of your local primary DNS server.

Spider List Tab

Under the Spider List tab, you may establish the names of Internet spiders whose actions you wish to exclude from logging, as shown in Figure 6.28.

Figure 6-28 Spider List Options in the Usage Import Options Dialog Box.

These settings are used in conjunction with the Exclude spiders checkbox that is enabled under the Import tab. To add a spider to the list, put an asterisk (*) after the last entry and type the word "and" plus the spider's name (e.g., "InfoSeek*and Lycos").

Log File Rotation Tab

Under the Log File Rotation tab, you can establish the database behavior for those entries that are cut off as one log file is closed and another is opened, as shown in Figure 6.29.

Figure 6-29 Log File Rotation Options in the Usage Import Options Dialog Box.

When a log file is rotated, the transactions that are occurring become split between the end of the old file and the beginning of the new file. You can select one of several methods for dealing with this behavior in the At the end of an import pop-up menu: Commit open visits to database, discard open visits, or store open visits for next import.

If you select the OK button when finished, the settings you make will be applied to current Usage Import operations. If you select the Save as Default Options button, the settings will apply to all future Usage Import operations as well.

Configuring Report Writer

To configure Report Writer's numerous preferences, select the Options command under the Tools menu to open the Report Writer Options dialog box, as shown in Figure 6.30.

Figure 6-30 Report Contents Options in the Report Writer Options Dialog Box.

Report Contents Tab

Under the Report Contents tab, you can establish options for what appears in reports.

If you disable the Include within report checkbox in the Report Writer definitions section, you will remove the usage definitions that Report Writer automatically tacks on to the bottom of each report. In the Graph images section, you can select Solid colors (for color printers) or Pattern lines (for gray scale printers) in the For print clarity, shade graphs with pop-up menu. You can use the HTML img src file name references pop-up menu to specify the case to be used in naming image files. Lower case is the most commonly accepted choice.

Report Document Presentation Tab

Under the Report Document Presentation Tab, you can specify how the report will appear, as shown in Figure 6.31.

Figure 6-31 Report Document Presentation Options in the Report Writer Options Dialog Box.

Enable the Visible checkbox in the Report document header text section to direct Report Writer to display header information (e.g., time, site, etc.). How header information looks can be defined using the Font, Color and Size pop-up menus. You can also establish a background color for the report in the Report body section.

Default Directories Tab

Under the Default Directories tab, you can establish the storage locations for both report documents and analysis files, as shown in Figure 6.32.

Figure 6-32 Default Directories Options in the Report Writer Options Dialog Box.

Calculation Cache Tab

Under the Calculation Cache tab, you can establish settings relating to the cache used to store report calculations. These settings include whether or not a cache is used and where it is located, as shown in Figure 6.33.

Figure 6-33 Calculation Cache Options in the Report Writer Options Dialog Box.

Here you can also clear the cache at any time, and establish the cache file's maximum size. Use of this cache increases the speed of report creation.

If you select the OK button when finished, the settings you make will be applied to current Report Writer operations. If you select the Save as Default Settings button, the settings will apply to all future Usage Import operations as well.

Automating Usage Import and Report Writer

You can direct your server to perform Usage Import and Report Writer tasks automatically. To do this, choose the Scheduler command from the Tools menu in Usage Import to open the Scheduler window shown in Figure 6.34.

Figure 6-34 Viewing the Scheduler Window in Usage Import.

Here, double-click on the All Jobs listing to open the Job Properties dialog box, as shown in Figure 6.35.

Figure 6-35 Schedule Options in the Job Properties Dialog Box.

Here, enable the Active (NT only) checkbox. Next, establish the times at which you want the task to run in the Occurs, Days, and Time sections.

Switch to the Message Log tab to establish a log file that keeps track of task executions, as shown in Figure 6.36.

Figure 6-36 Message Log Options in the Job Properties Dialog Box.

Use the drop-down menu to select variables that can be added to the log file's name. Finally, press the OK button to add the task to the Scheduler window.

To add tasks to the newly created job, right-click on it in the Scheduler window and choose New Task from the menu to open the Task Properties dialog box, as shown in Figure 6.37.

Figure 6-37 Adding Tasks in the Tasks Properties Dialog Box.

Here you may choose from several tasks in the Task type drop-down menu, such as Run a Report. Different options appear in the Task Properties dialog box depending on the task type you select. Press the OK button to save the new task under the job in the scheduler window.

Study Break

Create a Web Site Report

Apply what you have learned by creating a Web site report using Usage Import and Report Writer. First, use Usage Import's Server Manager window to configure a Web site. Be sure to enable logging in the Web Site Properties dialog box. Next, use a Web browser to record a number of hits to the site. Next, import the log into the Usage Import and Report Writer database.

Once you have imported the log, use Report Writer to generate a report in HTML format, similar to the one shown in Figure 6.18.

Performance Monitor back to top

The Performance Monitor application, shown in Figure 6.38, enables you to establish a wide number of statistical measurements, referred to as counters, for most of the server's hardware and software components, referred to as objects. Performance Monitor can be found in the Administrative Tools program group.

Figure 6-38 Performance Monitor Application.

Overall, Performance Monitor can be used to:

  • Measure resource demand.
  • Identify bottlenecks.
  • Monitor individual processes.
  • Baseline system performance.
  • Monitor remote computer performance.
  • Monitor network performance.
  • Alert you about deviations and exceptions.

Although you can make many determinations from within Performance Monitor itself, its data can also be exported to other programs for further analysis.

To see the counters and objects that Performance Monitor is capable of tracking, select the Add to Chart command from the Edit menu (or by pressing the plus (+) button. This will open the Add to Chart dialog box, as shown in Figure 6.39.

Figure 6-39 Add Chart Dialog Box.

Use the Computer pop-up menu to choose either the local or a remote computer to monitor. Use the Object pop-up menu to choose the components that will be tracked. Use the Counter pop-up menu to establish which statistics will be measured. In the Instance field, choose between multiple occurrences of the same object (e.g., multiple disk drives). Other pop-up menus permit you to alter the way data is displayed in the chart. The Explain button opens the Counter Definition field, as seen in Figure 6.39.

After you install the Windows NT 4.0 Option Pack, new objects and counters are added that monitor HTTP and FTP sessions. For example, there are objects for the Web Service, FTP Service, Active Server Pages, and others.

Monitoring the Web Service

Some of the counters that are particularly useful when working with the Web Services object are as follows:

  • Anonymous User/sec. Used to measure the number of users who are not part of the Windows NT users and groups database hitting the server every second.
  • Bytes Sent/sec. Used to measure the amount of data sent to users every second.
  • Maximum NonAnonymous Users. Used to measure the number of authenticated users hitting the server every second.

Monitoring the FTP Service

Counters that are useful when working with the FTP Service object include:

  • Bytes Total/sec. Used to measure the amount of data downloaded to and uploaded from users every second.
  • Current Anonymous Users. Used to measure the number of non-registered users that are logged on.
  • Maximum Connections. Used to measure the highest threshold of simultaneous user logons.

A complete list of IIS-related objects and counters is in Table 6.2.

Table 6.2 IIS Performance Monitor Objects and Counters

Objects
Counters
Active Server Pages

Debugging Requests


Errors During Script Routine


Errors From ASP Preprocessor


Errors From Script Compilers


Errors/Sec.


Memory Allocated


Request Bytes In Total


Request Bytes Out Total


Request Execution Time


Request Wait Time


Requests Disconnected


Requests Executing


Requests Failed Total


Requests Not Authorized


Requests Not Found


Requests Queued


Requests Rejected


Requests Succeeded


Requests Timed Out


Requests Total


Requests/Sec.


Script Engines Cached


Session Duration


Sessions Current


Sessions Timed Out


Sessions Total


Template Cache Hit Rate


Template Notifications


Templates Cached


Transactions Aborted


Transactions Committed


Transactions Pending


Transactions Total


Transactions/Sec.

FTP Service

Bytes Received/Sec.


Bytes Sent/Sec.


Bytes Total/Sec.


Current Anonymous Users


Current Block Async I/O Requests


Current Connections


Current NonAnonymous Users


Maximum Anonymous Users


Measured Async I/O Bandwidth Usage


Total Allowed Async I/O Requests


Total Anonymous Users


Total Blocked Async I/O Requests


Total Connection Attempts


Total Files Received


Total Files Sent


Total Files Transferred


Total Logon Attempts


Total NonAnonymous Users


Total Rejected Async I/O Requests

Internet Information Services Global

Cache Flushes


Cache Hits


Cache Hits %


Cache Misses


Cached File Handles


Current Blocked Async I/O Requests


Directory Listings


Measured Async I/O Bandwidth Usage


Objects


Total Allowed Async I/O Requests


Total Blocked Async I/O Requests


Total Rejected Async I/O Requests

NNTP Server

Article Map Entries


Article Map Entries/Sec.


Articles Deleted


Articles Deleted/Sec.


Articles Posted


Articles Posted/Sec.


Articles Received


Articles Received/Sec.


Articles Sent


Articles Sent/Sec.


Articles Total


Bytes Received/Sec.


Bytes Sent/Sec.


Bytes Total/Sec.


Control Messages Failed


Control Messages Received


Current Anonymous Users


Current Connections


Current NonAnonymous Users


Current Outbound Connections


Failed Outbound Logons


History Map Entries


History Map Entries/Sec.


Maximum Anonymous Users


Maximum Connections


Maximum NonAnonymous Users


Moderated Postings Failed


Moderated Postings Sent


Sessions Flow Controlled


Total Anonymous Users


Total Connections


Total NonAnonymous Users


Total Outbound Connections


Total Outbound Connections Failed


Total Passive Feeds


Total Pull Feeds


Total Push Feeds


Total SSL Connections


Xover Entries


Xover Entries/Sec.

SMTP Server

% Recipients Local


% Recipients Remote


Avg. Recipients/msg Received


Avg. Recipients/msg Sent


Avg. Retries/msg Delivered


Avg. Retries/msg Sent


Bytes Received Total


Bytes Received/Sec.


Bytes Sent Total


Bytes Sent/Sec.


Bytes Total


Bytes Total/Sec.


Connection Errors/Sec.


Directory Drops Total


Directory Drops/Sec.


Directory Pickup Queue Length


DNS Queries Total


DNS Queries/Sec.


ETRN Messages Total


ETRN Messages/Sec.


Inbound Connections Current


Inbound Connections Total


Local Queue Length


Local Retry Queue Length


Message Bytes Received Total


Message Bytes Received/Sec.


Message Bytes Sent Total


Message Bytes Sent/Sec.

Message Bytes Total

Message Bytes Total/Sec.


Message Delivery Retries


Message Received/Sec.


Message Send Retries


Messages Delivered Total


Messages Delivered/Sec.


Messages Received Total


Messages Refused for Address Objects


Messages Refused or Mail Objects


Messages Refused for Size


Messages Retrieved Total


Messages Retrieved/Sec.


Messages Sent Total


Messages Sent/Sec.


NDRs Generated


Number of MailFiles Open


Number of QueueFiles Open


Outbound Connections Current


Outbound Connections Refused


Outbound Connections Total


Remote Queue Length


Remote Retry Queue Length


Routing Table Lookups Total


Routing Table Lookups/Sec.


Total Connection Errors

Web Service

Anonymous Users/Sec.


Bytes Received/Sec.


Bytes Sent/Sec.


Bytes Total/Sec.


CGI Requests/Sec.


Connection Attempts/Sec.


Current Anonymous Users


Current Block Asyn I/O Requests


Current CGI Requests


Current Connections


Current ISAPI Extension Requests


Current NonAnonymous Users


Delete Requests/Sec.


Files Received/Sec.


Files Sent/Sec.


Files/Sec.


Get Requests/Sec.


Head Requests/Sec.


ISAPI Extension Requests/Sec.


Logon Attempts/Sec.


Maximum Anonymous Users


Maximum CGI Requests


Maximum Connections


Maximum ISAPI Extension Requests


Maximum NonAnonymous Users


Measured Async I/O Bandwidth Usage


NonAnonymous Users/Sec.


Not Found Errors/Sec.


Other Request Methods/Sec.


Post Requests/Sec.


Put Requests/Sec.


System Code Resident Bytes


Total Allowed Async I/O Requests


Total Anonymous Users


Total Blocked Async I/O Requests


Total CGI Requests


Total Connection Attempts


Total Delete Requests


Total Files Received


Total Files Sent


Total Files Transferred


Total Get Requests


Total Head Requests


Total ISAPI Extension Requests


Total Logon Attempts


Total Method Requests


Total Method Requests/Sec.


Total NonAnonymous Users


Total Not Found Errors


Total Other Request Methods


Total Post Requests


Total Put Requests


Total Rejected Async I/O Requests


Total Trace Requests

Study Break

Monitor Web Service Performance

Practice what you learned by configuring Performance Monitor to monitor Web server performance.

First, launch Performance Monitor from the Administrative Tools program group. Next, select the Add to Chart command from the Edit menu (or by pressing the plus (+) button. This will open the Add to Chart dialog box. Use the Computer pop-up menu to choose either the local or a remote computer to monitor. Use the Object pop-up menu to choose the components that will be tracked. Use the Counter pop-up menu to establish which statistics will be measured. Include the Anonymous User/sec., Bytes Sent/sec., and the Maximum NonAnonymous Users counters.

Analyzing Performance back to top

In this section, you will learn to identify bottlenecks and address network, disk drive, and CPU performance issues.

Identifying Bottlenecks

Optimal performance is achieved when your server's hardware and software are operating at the best of their capabilities. Because components in a system interact, it might not be possible to achieve the performance that you deem acceptable for a given task because one component is not as capable as the others. For example, the fastest processor available, lots of RAM, and speedy disk drives cannot compensate for a network made slow by limited bandwidth. The network then becomes a bottleneck.

Optimization is the process of measuring and analyzing the resource demands of a given task to see if there is anything that can be done to make it faster or more efficient. In some cases, the results of this analysis might lead you to re-configure your server. In other cases, you might find it necessary to upgrade components. Alternately, you might find that the server is delivering optimal performance and decide that this performance is acceptable. Whatever the conclusion, no educated decision can be arrived at in the absence of data.

A baseline is a snapshot of your server's normal activity over a regular interval of time. Save this data for comparison. Any deviation from the baseline is an indicator that the network environment has changed, or that a problem has arisen.

Monitoring your server's performance can help you determine how best to configure the server to perform a given task. Further, it can allow you to troubleshoot problems that are affecting performance. It can also provide a basis for planning future needs.

By monitoring such server components as processor, disk drive, and networking, you can detect which is acting as a bottleneck. Several Windows NT tools can help you in this.

Using Performance Monitor

As previously described, the Performance Monitor application, shown in Figure 6.40, enables you to establish a wide number of statistical measurements. These measurements include objects that apply to IIS performance both directly and indirectly.

Figure 6-40 Using Performance Monitor to Identify Bottlenecks.

Using Event Viewer

The Event Viewer application, launched from the Administrative Tools program group, provides information about server operations and failures, as shown in Figure 6.41.

Figure 6-41 Viewing Messages in the Event Viewer.

Double-click on a listing in the Event Viewer window to see detailed information about the occurrence, as shown in Figure 6.42.

F06_42

Figure 6-42 Viewing the Event Detail Dialog Box.

Using Task Manager

The Task Manager application, which can be opened by double-clicking on the status bar, can provide a view of the number, type, and resource demand for various server processes (see Figure 6.43).

Figure 6-43 Viewing Processes in Task Manager.

By switching to Task Manager's Performance tab, you can also get a quick summary of server resource utilization, as shown in Figure 6.44.

Figure 6-44 Viewing Performance in Task Manager.

Analyzing Network Performance

When your Internet/intranet site is hosted by a server computer dedicated to the IIS solely, monitoring network performance is a simple matter of determining when, and how often, network utilization reaches high levels. For an intranet site, the saturation point can be relatively remote because LANs generally support higher bandwidths (e.g., Ethernet at 10 Mbps.). For an Internet site, the saturation point is more easily reached because of limited telecommunications bandwidth (e.g., T1 at 1.544 Mbps.). Using Performance Monitor to evaluate high network utilization can be helpful here.

When your Internet/intranet site is hosted by a server computer dedicated to additional networking services, such as LAN-based file and printer sharing, more variables come into play. In these cases, it can be useful to evaluate the percentage of network utilization at both the client and server ends of a connection. When utilization is high, you might consider upgrading your networking link. For example, you might upgrade an Ethernet network (10 Mbps.) to a Fast Ethernet network (100 Mbps.).

Analyzing Disk Performance

The rate at which data is read from and written to the disk drive is another important factor in server performance. Counters that are useful when working with the disk object include:

PhysicalDisk Object

  • % Disk Time. Used to measure the amount of time a disk drive spends reading and writing data.
  • Avg. Disk Queue Length. Used to measure the average number of read/write requests made before the drive was able to accept them.

LogicalDisk Object

  • % Disk Time. Used to measure the amount of time a logical drive spends reading and writing data.
  • Avg. Disk Queue Length. Used to measure the average number of read/write requests made before the logical drive was able to accept them.

Windows NT does not enable disk performance counters by default. You may do this using the following commands in Command Prompt.

diskperf -y

Enables counters on local system.

diskperf -ye

Enables counters on local system with RAID 5.

diskperf -n

Disables counters on a local system.

The hard disk can become a bottleneck when you have large files accessed by clients at irregular intervals. Here you will see high disk utilization while CPU and network utilization is low. This problem can be addressed by installing a faster disk drive, perhaps with a faster bus, or by employing Redundant Array of Independent Drives (RAID) striping techniques.

Analyzing CPU Performance

The speed at which the server's processor can handle client requests is perhaps the most important factor in overall performance. One of the counters that is particularly useful when working with the processor object, as shown in Figure 6.45, is % Processor Time. It is used to measure the amount of time the processor spends executing active threads.

Figure 6-45 Percent Processor Time Counter.

When the processor becomes the bottleneck, you will see high CPU utilization while network utilization is low. One factor that can influence processor utilization is too little RAM, in which case the processor will be busy managing the paging file. Another factor is too many devices, in which case the processor will be busy managing all the interrupts. Common cures for this problem include upgrading to a faster CPU, adding more processors to a multiprocessor system, moving processor-intensive applications (such as databases) to different computers, or spanning IIS functions across multiple servers.

One of the most common IIS bottlenecks occurs when you enable logging to a database rather than to a file. This is because an ODBC connection must be established, which can take an inordinate amount of time and tie up server resources. If you think this might be a problem, switch to file-based logging and observe the results.

Study Break

Monitor CPU Utilization

Practice what you have learned by creating a CPU baseline in Performance Monitor.

First, launch the Performance Monitor application from the Administrative Tools program group. Here choose the Edit and Add to Chart commands to bring up the Add to Chart dialog box. Next, select the Processor item from the Object drop-down list. From the Counter list, select % Processor Time. If necessary, choose multiple instances from the Instance list. Complete the chart setup by pressing the Add button, and then the Done button. Use this chart at a variety of time intervals to identify high, low, and average CPU utilization periods.

Optimizing IIS Performance back to top

In this section, you will learn how to use the MMC to improve the performance of the IIS.

To enable performance-related preferences, launch the Internet Service Manager application (MMC), as shown in Figure 6.46.

Figure 6-46 Viewing Sites in Internet Service Manager.

Here, right-click on the service that you wish to adjust and select the Properties command. This will open the server Properties dialog box, as shown in Figure 6.47.

F06_47

Figure 6-47 Selecting Master Properties for IIS Sites.

Here you can establish performance properties for bandwidth throttling globally. This permits you to set the maximum amount of network bandwidth that the IIS can consume, ensuring that bandwidth will be available for other services.

Use the Master Properties pop-up menu to select the service that you wish to modify. You can also modify the performance characteristics for all sites by pressing the Edit button to open the Master Properties dialog box, as shown in Figure 6.48.

Figure 6-48 Viewing the Performance Tab in the Master Properties Dialog Box.

Here you can optimize your site for the anticipated number of daily users in the Performance Tuning section. By moving the slider, you direct the IIS to adjust the number of resources dedicated to the service. If you select a level that is higher than the actual number of user connections, faster access results as more resources are available than there are users. Setting it too much higher, however, is a waste of server resources such as memory. In setting this option, observe the site's logs to set the slider at a level not far above the actual daily number of hits.

Here you may also select the Enable Bandwidth Throttling option, which permits you to set the maximum amount of network bandwidth the service can consume, ensuring that bandwidth is available for other services.

Finally, you can enable HTTP keep-alives here. This directs the IIS to maintain client connections after a client request is made that can be reused for future requests, rather than requiring a new and separate connection for each request. This requires greater server resources, but it also improves performance at the client.

Another performance-related option is set under the Web Site tab (or FTP Site tab), as shown in Figure 6.49.

Figure 6-49 Setting a Maximum Number of Connections.

If you accept the Unlimited option in the Connections section, IIS will continue to serve ever-increasing numbers of connections until utilization reaches a point at which server performance is unacceptably bogged down. To avoid this, you can set a limit on the number of connections that will be served. You can also set a timeout value for when old and presumably unused connections will be dropped.

When you press the OK button to save these master properties, the Inheritance overrides dialog box will appear if the new settings differ from those established for an individual, or child, site. Select the child node(s) that you wish to extend global values to from the Descendants With Overridden Defaults for the Current Property list and press the OK button.

Study Break

Use Performance Tuning

Practice what you have learned by enabling the Performance Tuning option for the IIS globally.

First, observe the logs for the Web Service for at least a week, noting the maximum number of connections that occur. Next, set the Performance Tuning slider for a level just above the true hits threshold in a service's master properties. Watch the logs carefully to determine when adjustments should be made.

Optimizing Index Server Performance back to top

In this section, you will learn to configure the Windows NT Server to perform best with the Index Server.

As previously described, the Index Server is used to index the contents of Internet/intranet sites for faster document retrieval. While the default configuration of Windows NT Server is sufficient for low-volume sites, larger and busier sites can benefit from further performance tuning.

In order to determine how best to optimize the Index Server, you should consider the number of documents in and overall size of the corpus, the rate at which search requests occur, and the kind of queries that are made. Knowing this will help you to determine the amount of RAM and hard disk space that should be allocated to the service, as shown in Table 6.3.

Table 6.3 Optimal RAM Allocations for Index Server

Documents in Corpus
RAM Allocations
Less than 100,000

At least 32 Mbytes

100,000-250,000

64-128 Mbytes (32 Mbytes minimum)

250,000-500,000

128-256 Mbytes (64 Mbytes minimum)

More than 500,000

256 Mbytes or more (128 minimum)

The physical size of the catalog is also important. When less than 3 Mbytes of free space is available on the disk drive on which it is stored, indexing and filtering operations are paused and an error message is logged (which can be examined in Event Viewer). The minimum amount of disk space allocated should be about 30 percent of the size of the corpus. During a master merge, as much as 45 percent of the size of the corpus might be required in free disk space.

Study Break

Verify Corpus Size

Practice what you have learned by determining the size of the corpus.

Navigate to the Index Server's default directory to locate the corpus and determine its size. Compare this value with the server's RAM and disk space characteristics. Upgrade these characteristics as necessary to optimize Index Server performance.

Optimizing SMTP Service Performance back to top

In this section, you will learn to set connection and message limits and specify hosts for the SMTP service. The SMTP service is used to exchange email with mail hosts and SMTP clients.

One setting which greatly affects the performance of the SMTP Service is the number of connections it is permitted to make. To configure this option, open the SMTP Site Properties dialog box from the Internet Service Manager application, as shown in Figure 6.50.

Figure 6-50 Setting Connection Limitations for the SMTP Service.

Here you can determine how many connections the service is allowed to make for both incoming and outgoing messages by enabling the Limited to X connections checkbox. The minimum setting is one and the default is 1,000. Naturally, the fewer the number of simultaneous connections permitted the lower the drag on server resources. Lower settings will also lead to longer message delivery times, however.

You can also enable a maximum timeout value for connections here. The default is 600 seconds (10 minutes).

Finally, you can set a limit to the number of connections established when exchanging messages with a single remote domain. The value set here should be no greater than the number set for maximum simultaneous connections. The default is 100.

Another factor in SMTP Service performance pertains to the size of the messages it handles. You can set limits to this by switching to the Messages tab, as shown in Figure 6.51.

Figure 6-51 Setting Message Size Limits.

Here enable the Limit Messages checkbox. You may then set a maximum size for messages. The default size is 2,048 Kbytes (2 Mbytes) and the minimum size is one Kbyte. You may also set a maximum size for sessions. The default is 10 Mbytes. This number should be the same or higher than the value in the Maximum message size field. If a message exceeds the