|
Figure 13 – Single disk buffered throughput
|
bet | 22/47 | Sana | 30.03.2021 | Hajmi | 1,33 Mb. | | #13789 |
Figure 13 – Single disk buffered throughput. Basic and dynamic volumes show similar performance for buffered reads and writes. Buffered reads improve throughput for small read and write requests. Unlike unbuffered 4KB, and 8KB requests, buffered requests at those same sizes run at disk speed. 2KB write requests are the only exception to this: they require a 4KB read before each 2KB write. Buffered writes without WCE plateau at 10MBps. This is the same write plateau seen for unbuffered writes, however the plateau is earlier. This is because buffered writes smaller than 64KB are coalesced into 64KB blocks before they are written to disk. As we will show later, at 64KB requests and above, writes without WCE see a throughput ceiling of 10MBps due to the disk. The left graph’s dip in read performance at requests sizes larger than 64KB is due to a performance bug. Win2K does not contain this bug which is why the Win2K graphs show no such dip in their read throughputs.
Buffered request processor overheads in Figure 14 show similar overhead between basic and dynamic volumes with read and write requests showing similar overheads. Due to read-ahead and lazy writes, much of the actual request overhead was not being charged to our process. Instead, it was only being charged for the buffer copy. GetProcessTimes() therefore can significantly under-report the actual cost per request. 2KB write requests for both dmio and ftdisk can cost more than twice the processor time of larger requests. This is due to the extra read and merge that must take place for such small requests. Total processor cost equals fixed request cost plus the marginal cost per byte times the number of bytes per request. Since the overhead is the same per megabyte across all requests other than 2KB writes, this implies that the fixed overhead for each request is negligible while the marginal cost per byte dominates. On our machine, the fixed cost for both dynamic and basic volumes was 12s. The marginal cost for dynamic volumes was 7s per KB read and written while the marginal cost for basic volumes was 6s per KB read and 7s for each KB written.
In Windows 2000, writes still show a significant penalty for small 2KB requests, but the drop in overhead is much more drastic compared to NT4SP3 (see Figure 5). There is no significant penalty for small requests except for 2KB writes which must do a read before each write.
|
| |