Windows NT Performance Tuning
- Disk request caching - Data read from the disk is cached in RAM for possible use later.
- Memory fragmentation avoidance - Memory is in 4K chunks (pages). Each page may only be used by one thread
- Multiprocessing - Symmetric multiprocessing is used to divide processor load between several processors. This means the load is shared equally among all available processors.
- Process and thread prioritization - Threads that have greater importance to the system are given greater priority.
- Simultaneous page swapping to multiple hard drives.
PAGEFILE.SYS is the virtual memory swap file and resides on each hard drive that has page swapping enabled. When a disk read is carried out, the entire disk cluster is transferred to memory cache. NT uses write back caching which writes data immediately to the disk and preserves the written data in memory cache. NT workstation runs better with 24M or more of RAM in order to minimize disk caching requirements.
Bus Performance considerations
The limit on the ISA bus data transfer rate is 8M/second. SCSI and IDE controllers limit is around 5M/second with synchronous SCSI (SCSI-2 fast)transfers around 10M/second. SCSI-2 wide transfers are around 20M/second. SCSI-2 F/W around 40M/second. Ultra SCSI is around 80M/second.
Process Priority Setting
Process priority may be set to a value from 1 to 31. with the following categories:
- 0-7 - Low user
- 7-15 - High user
- 15-23 - Real Time
- 23-31 - Administration only
Base thread priority is 7. Threads inherit the base priority of their parent process. The NT operating system can vary priorities higher or lower by a value of two in order to remain responsive. Processes may be launched with different priority settings from the command line using the following syntax:
start /priority /path/name.exe
Where /priority may be /low, /normal, /high, or /realtime. The "/path/name.exe" is the path to and name of the program to be run.
Setting Priority of foreground tasks
To modify foreground task priority use the system applet in the control panel. Selecting the performance tab will allow three foreground task settings to be set. If set to none on the left, foreground tasks are not boosted in priority, On the middle setting foreground tasks get a priority increase of 1. On the right on the maximum setting, foreground tasks get a priority increase of two.
NT Objects that affect performance or may be important to measure
- L2 Cache - Level 2 cache is between the microprocessor and memory. There should be 256K or more for best performance. You can determine how much you have by checking your system's BIOS.
- Logical disk - This object includes network mounted disks along with local disks.
- Process and thread objects
- Paging file
- Physical disk
- System - System performance
Running Performance Monitor
Select "Start", "Programs", "Administrative Tools", "Performance Monitor" to run the performance monitor tool.
Monitoring Processor Performance
- Processor - %processor time - The processor is not a bottleneck until %processor time is sustained at 80% or more. Spikes to 100% are normal
- Processor - Interrupts/second - Should be 100 to 1000 with spikes to 2000. If too high, a hardware device may be malfunctioning.
- System - Processor queue length - Should be less than 2. To monitor process queue length a thread counter must also be monitored by selecting "Edit" in the menu, then "Add to chart", then select "Thread" in the object drop down list and select a measurement parameter like "context switches/sec".
Measuring Disk Performance
To measure disk performance, disk counters must first be enabled since they are disabled by default due to their cause of performance loss. Disk counters are enabled by entering "diskperf -y" on the command line. To turn off disk counters, enter "diskperf -n" on the command line. The following characteristics show disk performance:
- Memory: Pages per second
- Logical Disk: % disk time - This indicates the amount of processor time spent serving disk requests. Measured against Processor :% processor time, it will indicate whether processor time is being used up by disk requests.
- Logical disk: Disk Bytes per transfer - Indicates the speed of the disk drives.
- Logical Disk: Current Disk queue length
- Logical disk: Disk bytes per second
Logical disks operate at a higher level than physical disks since logical disk performance mapping may include network shared drives.
Reasonably fast hard drives transfer data at about 2M per second. Computers are moving from peripheral cards of EISA to PCI since PCI cards are faster. If you use a ISA based controller card, you can expect no more than an 8M per second transfer rate from your controller card. some controller types and maximum speeds are:
- IDE - 5 M / sec
- SCSI - 6 M / sec
- SCSI-2 Fast - 10 M / sec
- SCSI-2 Fast and Wide - 20 M / sec
- Ultra DMA IDE - 33M / sec
- Ultra SCSI - 40M / sec