Disk Bandwidth: How Much Is Needed? There is a fundamental change happening in today's PCs. The center of gravity of the computer system is moving towards the I/O. Disk subsystems are becoming more complex, with much more technology focused in the peripheral controller. The reason for this shift in focus toward the peripheral controller is due to the fact that, in the last few years, many applications have become disk bottlenecked. According to Hewlett-Packard, from 1988 to 1991 typical database transactions have progressed from being 84% CPU-intensive to 79% disk-intensive. Obviously, further increases in CPU power will no longer result in significant gains in overall transaction processing speed until something is done about the disk bottleneck. This bottleneck shift from CPU to disk has happened as a result of the tremendous increases in microprocessor speed over the last decade. The first PC introduced by IBM was based on Intel's 8-bit 8088 microprocessor which managed to execute instructions at about one-third MIPS (Million Instructions Per Second). This was followed by the PC/AT which was initially introduced with a 16-bit 80286 running at 6MHz. As Intel continued to increase the speed of the 80286 microprocessor, faster and faster PCs quickly followed. Compaq was the first to introduce a 32-bit PC based on the 80386. And today's EISA bus standard for PCs provides a backward compatible backplane with sufficient bandwidth for 80486 microprocessors and beyond. Processor MIPS PCs _____________________________ 8088 5MHz 0.3 1 80286 6MHz 0.7 2.5 80286 12MHz 1.4 5 80386 16MHz 6 21 80386 33MHz 12 42 80486 33MHz 27 96 80486 50MHz 41 145 80586 66MHz 100 353 The growth in CPU power over the last decade can be seen in the above chart. Yardsticks like MIPs or Dhrystones can be used to measure CPU power, but a much more interesting unit of measurement is "PCs". The original 8088 would be one "PC". The 80286 increased the CPU power to five PCs; the 386 brought us up to forty-two PCs; the 80486 - 145 PCs, and now the P5 (80586) is expected to provide the equivalent in computing power of 353 PCs. A more pertinent question to ask when building a multiuser system is, how many users can be supported by a particular processor. As illustrated in the chart below, if you double the speed of a processor, twice as many instructions can be executed in a given time, and so, if all other parts of the system are scaled up accordingly, twice as many users can be supported with the same response time. If we take a system like a 33MHz 386 which we know can support thirty users, we can then assume that a 50MHz 486, which has 3.5 times the CPU power, will be able to support over one-hundred users if all other parts of the system are sped up accordingly. At 100 MIPS, the upcoming generation of microprocessor should be able to provide enough computing power for 250 users! Processor MIPS Users ____________________________ 80286 6MHz 0.7 1 80286 12MHz 1.4 3 80386 16MHz 6 15 80386 33MHz 12 30 80486 33MHz 27 67 80486 50MHz 41 102 80586 66MHz 100 250 The primary problem is that more users also generate more disk I/O. As a rule of thumb, each user will generate around five disk requests per second during periods of heavy system usage. Disk Processor Users Jobs/sec ________________________________ 80286 6MHz 1 5 80286 12MHz 3 15 80386 16MHz 15 75 80386 33MHz 30 150 80486 33MHz 67 335 80486 50MHz 102 510 80586 66MHz 250 1250 This presents a problem, because even the fastest disk drives take around 20ms to perform a typical read or write operation. To determine how many read or write requests a drive can service, the 20ms average I/O time is divided into one second. The result is fifty I/O jobs per second for a fast disk drive. (Most drives today can service no more than forty I/O jobs per second.) The disk bottleneck starts to occur at around ten users. For larger systems or networks, some method must be found to build disk subsystems which can service many more I/Os per second than a single drive. Operating systems such as Unix and Novell Netware, which support overlapped requests from a large number of users or tasks, can utilize disk striping to increase the bandwidth of the disk subsystem. Disk accesses are scattered across multiple drives and overlapped through the controller so that each drive can work on a different job at the same time. The total number of I/O requests that can be serviced by the subsystem is equal to the number of I/Os that can be serviced by an individual drive, multiplied by the number of drives. At fifty I/Os per drive, one drive would be required for every ten users as shown in the chart below. Additional drives would be required if disk fault-tolerance was desired. The number of drives would need to be roughly doubled to build a RAID-1 array or tripled for a RAID-5 array, in order to provide the same bandwidth. Drives Required (RAID-0 no fault-tolerance): SCSI Processor Users Jobs/sec Drives Busses _______________________________________________ 80286 6MHz 1 5 1 1 80286 12MHz 3 15 1 1 80386 16MHz 15 75 2 1 80386 33MHz 30 150 3 1 80486 33MHz 67 335 7 1 80486 50MHz 102 510 11 2 80586 66MHz 250 1250 25 4 However, if the disk drive's average access time can be reduced, then each drive will be able to service more I/O requests per second. Caching controllers can accomplish this by decreasing the drive's 20ms average access time to well below 10ms. This increases the fifty I/Os per second for each drive, to more than 100 I/Os per second. The result is that, with a caching controller, far fewer disk drives are required in order to balance the system. For reprints, ask for Technology Focus Paper: "Disk Bandwidth: How Much Is Needed?" Document Number MM-0095-001-A from DPT Channel Marketing (407) 830-5522