A Decompositional Approach to Computer System Performance Evaluation
چکیده
Introduction Throughout the history of computers, a primary design goal in all systems has been to achieve maximum performance. When digital computing was in its infancy, performance was measured in terms of throughput of scientific calculations: in the mid-1940s, the then-new ENIAC's most-touted design feature was its ability to calculate artillery trajec-tory tables over 1,000 times faster than earlier electromechanical computers [18]. Surprisingly , this traditional approach to performance evaluation and optimization remains in widespread use today. Admittedly, one does not see today's processor designers optimizing their commodity CPUs for use in anti-aircraft guns, but it is still true that the performance evaluation suites in widespread use are based either on models of scientific computation or on a systems programming or hardware design workload [23][24]. These models are becoming progressively less valid for today's applications: modern users are focusing more and more of their attentions on applications heavy with multimedia and networking content. One need not look farther than the explosive success of the worldwide web and the plethora of multimedia extensions and protocols that it has spawned to see this trend in action. The demands that such modern applications make on the hardware and software subsystems that support them are very different than those simulated and evaluated by the traditional set of performance analysis tools. As modern applications become increasingly dependent on multimedia, graphics, and data movement, they are spending an increasing 2 fraction of their execution time in the operating system (OS) kernel, an area of the system almost completely ignored by such traditional performance-evaluation tools. As an illustrative example, consider what must undoubtedly be today's leading server application: the web server. Web servers have been shown to spend over 85% of their CPU cycles running operating system code [4]; in contrast, the near-ubiquitous SPEC benchmarks execute less than 9% of their instructions in the OS kernel [7]. The figures in Table 1 show that the web server is not unique: the other typical multimedia, commercial, and GUI workloads listed similarly spend between 20% and 90% of their instructions in the ker