Examining and Tuning Disk Performance

A disk that is developing a bottleneck might cause the entire system to slow. If you determine that disk resources are responsible for an overall decrease in system performance, you need to find a solution quickly. Although you might assume that installing another disk offers a quick fix, the right solution to your performance problem depends on the cause of the bottleneck.

Adding a disk is an appropriate solution if you can move files to a new disk, if you can create a striped volume, or if you are out of space. However, for disk-space problems only, you might want to compress your drive, provided that the processor has available cycle to handle the compression activity and that your disk requests are typically large. For a multiuser system, you can also implement disk quotas to restrict growth of user files.

If your disk system is too slow, consider the following alternative steps:

  • Rule out a memory shortage. When memory is scarce, the Virtual Memory Manager writes more pages to disk, resulting in increased disk activity. Because low memory is a common cause of bottlenecks, make sure that this is not the source of the problem before adding hardware. Also, make sure to set the paging file to an appropriate size as described in Evaluating Memory and Cache Usage in this book.

  • Defragment the disk using Disk Defragmenter. For information about using Disk Defragmenter, see Windows 2000 Help.

  • Use Diskpar.exe on the Windows 2000 Resource Kit companion CD to reduce performance loss due to misaligned disk tracks and sectors.

  • Use striped volumes to process I/O requests concurrently over multiple disks. The type you use depends on your data-integrity requirements. Implement striped volumes for fast reading and writing and improved storage capacity. When striped volumes are used, disk utilization per disk need to fall due to distribution of work across the volumes and overall throughput need to increase.
    When using striped volumes, make sure to use the optimal size of stripe for your workload. The stripe size needs to be a multiple of the size of the average request.
    If you find that there is no increased throughput when scaling to additional disks in a striped volume, you might be experiencing a bottleneck due to contention between disks for the disk adapter. You might need to add an adapter to better distribute the load.

  • Place multiple drives on separate I/O buses, particularly if a disk has an I/O-intensive workload.

  • Distribute workload among multiple drives. For example, for database applications, you might want to put transaction logs on a separate spindle from data. Notice that writing to a log file is a sequential operation and tends to be more efficient than the random operations typical of accessing data in a database.
    If you are unsure of a suitable distribution for network applications, track users and the files they work with in order to plan an efficient distribution by means of the auditing capability of the NTFS file system. This tells you which disks are getting the most usage and helps you determine whether you need to redistribute workloads. For more information about auditing, see Windows 2000 Professional Help.

  • Limit your use of file compression or encryption. These features can add some overhead and you need to use them sparingly if not required by your enterprise and if performance is critical.

  • When obtaining disk systems, use the most intelligent and efficient components available for your disk system, including controller, I/O bus, cabling, and the disk. Upgrade to faster-speed or wider-bandwidth components as necessary. These measures generally decrease transfer time and improve throughput. Use intelligent drivers that support interrupt moderation or interrupt avoidance to alleviate the interrupt activity for the processor due to disk I/O.