Capítulo de livro Acesso aberto Revisado por pares

Finding and Removing Performance Bottlenecks in Large Systems

2004; Springer Science+Business Media; Linguagem: Inglês

10.1007/978-3-540-24851-4_8

ISSN

1611-3349

Autores

Glenn Ammons, Jong-Deok Choi, Manish Gupta, Nikhil Swamy,

Tópico(s)

Advanced Software Engineering Methodologies

Resumo

Software systems obey the 80/20 rule: aggressively optimizing a vital few execution paths yields large speedups. However, finding the vital few paths can be difficult, especially for large systems like web applications. This paper describes a novel approach to finding bottlenecks in such systems, given (possibly very large) profiles of system executions. In the approach, for each kind of profile (for example, call-tree profiles), a tool developer implements a simple profile interface that exposes a small set of primitives for selecting summaries of profile measurements and querying how summaries overlap. Next, an analyst uses a search tool, which is written to the profile interface and thus independent of the kind of profile, to find bottlenecks. Our search tool (Bottlenecks) manages the bookkeeping of the search for bottlenecks and provides heuristics that automatically suggest likely bottlenecks. In one case study, after using Bottlenecks for half an hour, one of the authors found 14 bottlenecks in IBM's WebSphere Application Server. By optimizing some of these bottlenecks, we obtained a throughput improvement of 23% on the Trade3 benchmark. The optimizations include novel optimizations of J2EE and Java security, which exploit the high temporal and spatial redundancy of security checks.

Referência(s)