Windows NT Server Optimization Guidelines

The following optimization guidelines will help you to optimize your Windows NT Server environment. In addition, application of the guidelines will be unique to each Microsoft BackOffice system and thus may be dependent on other Microsoft BackOffice component requirements.

Satisfy the basic memory requirements of Windows NT Server. In order to begin to optimize any Windows NT Server–based system, 16 MB of system memory (RAM) must be allocated to satisfy the overhead and basic processing requirements of a Windows NT Server–based system. This memory is the minimum recommended amount for basic file and print operations. Appropriate increase in memory will be necessary as user and application demands increase. Hence, the appropriate amount of memory over and above the basic requirements, is unique to each system.

The Performance Monitor counter 'Memory: Pages/sec' is the number of pages read from the disk or written to the disk to resolve memory references to pages that were not in memory at the time of the reference. As a rule, you can assume that if the average of this counter is consistently greater than 5, then memory is probably becoming a bottleneck in the system. Once this counter starts to average consistently at 10 or above, performance is significantly degraded and disk thrashing is probably occurring.

Spreading paging files across multiple disk drives and controllers generally improves performance as multiple disks can process I/O requests concurrently. After all, you can have up to 16 separate page files. Also, since Windows NT has several system files that are frequently accessed, you may want to experiment with locating the paging file on one disk and the Windows NT system files on another. You should also locate the page file(s) on separate disk(s) from application files to allow for page file I/O and application file I/O to occur concurrently. This will only work if the disk driver(s) and controller(s) used can accommodate asynchronous I/O requests. Keep in mind that most IBM-compatible "non–super servers" have an ATDISK as the default and the ATDISK driver can have only one I/O request pending at a time. If your system mixes high-speed disks and low-speed disks, use the fastest disks for all your paging.

The counter 'Memory: Available Bytes' displays the amount of free physical memory. If this counter stays consistently below 1 MB on a server running Windows NT Server, paging is occurring and performance is less than optimal.

Use the Control Panel | System | Virtual Memory and set the page file size such that extension of it will rarely occur.

Use the Control Panel | Services to turn off unnecessary Windows NT services, and Control Panel | Network to uninstall any unnecessary Windows NT–based device drivers. This can free up both CPU and memory.

Each application (as well as each thread) in the system has a set priority. You can control the priority system wide by changing the following in Control Panel | System | Tasking

Use this dialog box to change the relative responsiveness of applications that are running at the same time. When more than one application is running in Windows NT Server, by default the foreground application receives more processor time, and so responds better, than applications running in the background.

If 'Processor: % Processor Time' counter consistently registers at or near 100%, the processor may be the bottleneck. ('System: % Total Processor Time' can be viewed for multiprocessor systems). If this occurs, you need to determine WHO or WHAT is consuming the CPU. To determine which process is using up most of the CPU's time, monitor the 'Process: % Processor Time' for all of the process instances.

You can tell if the CPU activity is due to applications or to servicing hardware interrupts by monitoring 'Processor: Interrupts/sec.' This is the number of device interrupts the processor is experiencing. A value over 1000 should cause you to look at the efficiency of hardware I/O devices such as the disk controllers and network cards.

If the 'Physical Disk: % Disk Time' counter consistently registers at or near 100%, the physical disk is the bottleneck. This counter is the percentage of elapsed time that the selected disk drive is busy servicing read or write requests, including time waiting in the disk driver queue.

If 'Physical Disk: Disk Queue Length' (pending disk I/O requests) is greater than 2, it generally indicates significant disk congestion. (Note This same rule applies to most I/O devices.)

You can configure the server's resource allocation (and associated non-paged memory pool usage) by using the Control Panel Network applet. When you use the Network applet to configure the server service software, you are presented with the following Server Optimization Level dialog.

The 'Minimize Memory Used' level is meant to accommodate up to 10 remote users simultaneously using the Windows NT Server.

The 'Balance' option is for up to 64 remote users.

The 'Maximize Throughput for File Sharing' is for 64 or more remote users. With this option set, file cache access has priority over user application access to memory. Use this option if you are using the Windows NT Server as a file server. This is the default setting!

The 'Maximize Throughput for Network Applications' is for 64 or more remote users. However, with this option set, user application access has priority over file cache access to memory.

The "Maximize Throughput for Network Applications" is the optimal setting for Microsoft BackOffice applications such as Microsoft SQL Server, SNA Server, and Systems Management Server. With this option set, network application access has priority over file cache access to memory (4 MB of memory is allocated to available memory for starting up and running local applications). In addition, the amount of memory allocated to the server service (for such resources as InitWorkItems, MaxWorkItems, RawWorkItems, MaxPagedMemory, MaxNonPagedMem, ThreadCountAdd, BlockingThreads, MinFreeConnections, and MaxFreeConnection) is appropriately optimized for this choice.

NTFS is best for use on volumes of about 400 MB or more. This is because performance does not degrade with larger volume sizes under NTFS as it does under FAT. As the size of the volume increases, performance with FAT will quickly decrease. When using the FAT file system, the disk space taken by files is more than the space taken when using NTFS. FAT file system uses clusters to allocate disk space for files. Clusters are the smallest allocation units that the file system uses to allocate space for the files. For example, for a 1-byte file, 1 cluster will be allocated, thus wasting all of the unused space. When a large number of small files are stored on a FAT partition, the cluster size may tend to waste a large amount of disk space. The cluster size is dependent on the size of the logical drive. FAT can only track a maximum of 64K clusters since there are 64K entries in the File Allocation Table. That would indicate that the cluster size will increase for large drives, in order to access the whole drive. The maximum cluster size is 64K, thus making the largest logical drive size to be 4 gigabytes (GB). With NTFS there is a limit, however, it's 264.