Previous Page | Next Page

  1. Introduction
  2. Capabilities
  3. Structure
  4. The Registry
  5. System and Configuration Files
  6. Security
  7. Application Support
  8. Requirements
  9. Installation
  10. Unattended Installation
  11. Booting
  12. Filesystems
  13. Programs
  14. Control Panel
  15. Tool
  16. Commands
  17. Customization
  18. Environment Variables
  19. Printing
  20. Performance
  21. System Services
  22. Permissions
  23. Groups
  24. User Rights and Auditing
  25. User Profiles
  26. Policies
  27. Network Model
  28. Resource Access
  29. Network Browsing
  30. Protocol Support
  31. RAS
  32. Networking
  33. Backups
  34. Events
  35. Error Handling
  36. Diagnostic Tools
  37. Items to Memorize
  38. Terms
  39. Credits

Windows NT Performance Tuning

Automatic Optimizations

  • 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.

Page Swapping

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.
  • Memory
  • Process and thread objects
  • Paging file
  • Physical disk
  • Process
  • Processor
  • System - System performance
  • Thread

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.

Disk Speeds

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