Cover V05, I12
Article
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5

dec96.tar


Performance Planning in an NT Environment

Gilbert Held

A growing number of sites have opted to include one or more Windows NT servers to the overall system mix for various reasons. Because NT takes a different approach to many aspects of system management, the inclusion of NT servers in a UNIX environment presents interesting challenges to UNIX system administrators. This is particularly true with respect to performance management, as the traditional UNIX tools used for that purpose are not available under NT.

In this article, I will discuss the use of Windows NT Performance Monitor as a mechanism to ensure that your server can support projected workloads. I will first provide an overview of the features of this NT graphics tool, as well as illustrate its operation. Then, I will describe how you can use Performance Monitor as a mechanism for tailoring your hardware platform to applications you anticipate using.

Overview

Performance Monitor is a graphical tool built into both Windows NT Workstation and Windows NT Server. It provides the ability to measure the performance of your computer or other NT computers connected to a network. Performance Monitor also enables you to view the performance of approximately 20 system resources, which are referred to as objects. Each object in turn may have a group of counters that provides unique statistical information for an object. When the full set of counters for available objects are considered, Windows NT's Performance Monitor allows you to examine the operation of the computer, based on several hundred hardware and software components. Then, you can answer such questions as, "What is the effect of additional cache memory upon the ability of a server to handle more Web hits?," "What is the effect of multiple ftp downloads upon processor utilization?," and "Is the network connection or the hardware platform responsible for the delays experienced by network users?".

Besides providing a graphical tool for measuring the performance of local or networked computers, Performance Monitor can generate alerts when predefined conditions occur, generate reports, and even initiate the execution of a paging program to notify predefined personnel that their presence is requested.

It's On The Screen

The orientation of Performance Monitor is visual - that is, the utility assumes that, for the most part, you will be working with it interactively. Figure 1 illustrates the initial Performance Monitor screen display, with the main section of the window used to plot selected performance metrics once those metrics are selected. As you select objects and object counters, not only are they graphed in the window in real time, but, the values of selected objects also will be displayed at the bottom of the window. Thus, the row with the box labeled "Last" in the left portion of Figure 1 will display numeric information concerning a selected object while the value of the object is being graphed. The right box labeled "Graph Time," which has a value of 100 in the value bar, indicates the time in seconds it takes for the chart to complete one display across the window. Since graphing occurs across the screen and then wraps back to the left and overwrites the previous graph, the display of the average, minimum, and maximum values for an object can provide valuable information without requiring you to watch the monitoring process for a prolonged period of time.

Monitoring System Behavior

To select an object counter to monitor, you would choose the Add to Chart entry from the program's Edit menu. This action will result in the display of the dialog box illustrated in Figure 2.

Several selections in that dialog box deserve a degree of elaboration. The box labeled "Computer" enables you to select a member computer from a Windows NT domain or workgroup if the computer you are using is connected to an NT network. Thus, you can monitor the performance of your computer as well as other NT computers connected to a common network.

The box labeled "Object" represents individual processes, different types of memory, and physical devices whose values can be charted. In actuality, a set of counters exists for each object, which requires you to select a counter associated with the selected object. In Figure 2, the Available Bytes counter is shown being selected.

Since many computers can have multiple processors and multiple disk drives, the box labeled "Instance" is used to select a specific physical object when multiple objects exist. Some objects, such as memory, do not have instances because they are shared resources.

To facilitate recognizing the display of object counters as they are graphed, you can associate a color, width, and style to each counter. Because of the large number of counters that are supported by Performance Monitor, the Explain button can also be used to generate a description of a selected counter. This is shown in the lower portion of Figure 2, in which the definition for the Available Bytes counter was displayed after the button labeled Explain was clicked. Once you complete your selection process, click on the Add button and Performance Monitor will chart your selection.

Figure 3 illustrates the charting of two object counters, available bytes and percent processor time. Note that a wide width was selected for the percent processor time counter to make it easy to differentiate from the graph associated with the available bytes counter. Also note that by clicking on the available bytes counter at the bottom of Figure 3, the numeric values associated with that counter are displayed. Thus, during the monitoring period, available memory in bytes ranged from a minimum of 10.46 Mb to a maximum of approximately 10.9 Mb, with an average of 10.46 Mb available.

If you look at the thin line in Figure 3 that represents available bytes, you will note some significant changes over the approximate 100-second graph time. Those changes reflect the activity of several applications being started and then completing during the time span represented by the graph.

Staying Alert With Alert

An interesting aspect of Performance Monitor is its alert capability. Similar to a network management program, Performance Monitor includes the ability to define counter values which trigger an alert when the predefined value is reached. The actual alert will be displayed in the program's alert log; however, you can also associate a program with an alert so that program will be executed when the alert condition occurs. This enables you, for example, to have a pager program notify your technician that his or her presence is requested in the Web room.

The assignment of alerts is also performed through the Edit menu, requiring the selection of the "Add to Alert" entry from that menu. The result of that action is the generation of the dialog box labeled "Add to Alert," which is shown in Exhibit 4. In this example, the percent processor time counter was selected and an alert condition was specified when the percent processor time exceeded 50. Note that a program could be associated with the alert to execute the first time the alert occurs or every time the alert occurs. The "First Time" option may be preferable when paging employees, because certain counter values can significantly fluctuate, resulting in repeated annoying beeps.

Recognizing the old adage that the "proof of the pudding is in the eating," I executed several programs to obtain a percent processor time alert. Figure 5 illustrates the Performance Monitor alert log with a single entry indicating the date and time of the alert, as well as the value of the counter. Note that a default alert interval of 5 seconds serves as a barrier to the generation of multiple alerts over a short period of time.

Performance Testing

The installation of application software on a server usually involves unknown territory with respect to performance. Fortunately, Performance Monitor provides you with a tool you can use to examine the performance of your computer under different loading conditions before moving the computer into a production environment. For example, assume your company is developing an SQL database server and expects a certain query rate once the computer is placed online. Before putting the computer into production, it would probably be a good idea to examine the percent processor time counter while initiating several queries to the server. Doing so might indicate the need to replace a Pentium uniprocessor with a multiprocessor, to replace a lower clock rate Pentium with a higher clock rate processor, or perhaps even to migrate to a MIPS or DEC Alpha based NT platform.

Extrapolation Issues

In many situations, it may not be feasible nor practical to initiate a benchmark that mimics a full production environment. For example, attempting to replicate an expected 5,000 hits per hour on a popular Web server might be beyond the capability of a group of communications specialists. In such situations, you should consider initiating a reasonably sized benchmark and extrapolating the results. Although extrapolation can be a godsend to situations where it is beyond your capability to replicate an expected workload, by itself, extrapolation can be dangerous. This is because the extrapolation of certain counter values are not linear. Instead, certain counter values may follow an exponential curve as usage increases. Although it is extremely difficult, if not impossible, to obtain precise results when forced to use extrapolation, you can minimize the probability of inaccurate results by incorporating a reasonable margin for error into the extrapolation process. For example, assume you noted that the generation of five queries in close proximity of one another by time resulted in a 10% processor time value. Although you might be tempted to extrapolate and consider the processor capable of supporting up to 50 queries, that would more than likely provide an erroneous result since a workload versus percent processor time is not linear.

To obtain an estimate of the nonlinear relationship, you might consider generating three queries, then seven queries, and then observing the value of the percent processor time for each situation. Doing so might provide an indication of the general nonlinear relationship that allows you to obtain a more realistic extrapolation. Additionally, since a few points are rarely sufficient to obtain a viable plot, you should consider stopping your extrapolation process when it reaches a 60 to 70 percentile range. Most exponential relationships may initially commence as a linear to near linear relationship up to about a 60 to 75 percentile range and then rapidly increase beyond that range exponentially. Thus, stopping your extrapolation prior to the point where many relationships increase exponentially should provide a realistic extrapolation that indicates a level of service your computer can provide. Through the use of Performance Monitor you can obtain information necessary to predict the level of service a computer can provide. Thus, this tool can reduce uncertainty as well as alleviate performance-related problems.

Conclusions

Although NT's Performance Monitor can be of considerable assistance for determining a level of performance under different loading conditions, alert you to predefined conditions, generate logs and reports, it is not all encompassing. For those of us who like to know why as well as when, NT's alert capability needs further work. NT's Performance Monitor does not capture and make available a snapshot of key system variables when a predefined condition occurs. Although many times you may be able to use a trial-and-error approach to determine the cause of an alert, doing so can be time-consuming. Additionally, there is no way currently available to integrate the results of this tool with output from other performance management tools in a heterogeneous environment. Performance Monitor, similar to most Microsoft systems, assumes a homogeneous NT environment. Although Performance Monitor may not provide all the information many SAs require, it does come free with Windows NT.

About the author

Gilbert Held is an author and lecturer on computer-related topics. Some of Gil's recent books include Ethernet Networks 2ed., LAN Performance: Issues and Answers, and Protecting LAN Resources, each published by John Wiley & Sons. Gil can be reached by email at 235-8068@mcimail.com.