Windows 2000 Disk io performance Leonard Chung




Download 1.33 Mb.
bet12/47
Sana30.03.2021
Hajmi1.33 Mb.
#13789
1   ...   8   9   10   11   12   13   14   15   ...   47

Overhead Measurement

The Win32 API has a function called GetProcessTimes() which extracts timing information from a process. The user time and kernel time consumed by a process are among the information it returns. We originally used GetProcessTimes() as our only overhead measurement. However, it became clear that GetProcessTimes() often understated the actual processor cost that was being incurred, because GetProcessTimes() only returns the processor cost which was charged to that process. Measuring the cost per IO is complicated by the fact that not all of the processor time used is charged to processes. During certain situations, such as interrupt time, processor cycles aren’t charged to any process. Those cycles are unaccounted for by GetProcessTimes(). Measurements taken with GetProcessTimes() are the lower bound of the range of actual CPU overhead.


To get the upper bound, we measured system idle time. We measured idle time by using a soaker: a thread or set of threads running at idle priority that are set in a busy loop. They try to consume all available idle cycles, effectively becoming the idle process. By first measuring the soaker’s processor time while the system is idle, then measuring the soaker’s processor time while running a test, and finally calculating the delta, we can subtract out the background processor overhead and find the processor time being consumed by IO generation and the previously unaccounted processor time associated with the IO requests. Since the soaker looks only at total system idle time rather than processor consumption by individual processes, the soaker does not return results for a single process alone, but may include processor time used by other applications. The overhead reported by the soaker is the upper bound on CPU overhead. Unless otherwise noted, all of the overhead graphs shown are taken using a soaker.
At small request sizes, the upper bound can show a significant difference in the measured overhead from the lower bound. However, at larger request sizes these upper and lower bounds generally converge.




    1. Download 1.33 Mb.
1   ...   8   9   10   11   12   13   14   15   ...   47




Download 1.33 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Windows 2000 Disk io performance Leonard Chung

Download 1.33 Mb.