< Day Day Up >
How Is This Book Organized?
This book teaches an audience of various levels of experience to find and fix performance problems. To
accomplish this, the chapters are presented so that you can pick and choose to read different parts of
the book without reading the entire book straight through.
Chapter 1 is devoted to the basic methods of performance problem hunting. It contains a series of
non-Linux–specific tips and suggestions that prove useful for tracking down performance issues. These
guidelines are general suggestions for performance problem hunting and can be applied to tracking down
performance issues on any type of computer system.
Chapters 2 through 8 (the bulk of this book) cover the various tools available to measure different
performance statistics on a Linux system. These chapters explain what various tools measure, how they
are invoked, and provide an example of each tool being used. Each chapter demonstrates tools that
measure aspects of different Linux subsystems, such as system CPU, user CPU, memory, network I/O,
and disk I/O. If a tool measures aspects of more than one subsystem, it is presented in more than one
chapter. Each chapter describes multiple tools, but only the appropriate tool options for a particular
subsystem are presented in a given chapter. The descriptions follow this format:
1. Introduction— This section explains what the tool is meant to measure and how it operates.
2. Performance tool options— This section does not just rehash the tool's documentation.
Instead, it explains which options are relevant to the current topic and what those options mean.
For example, some performance tool man pages identify the events that a tool measures but do
not explain what the events mean. This section explains the meaning of the events and how they
are relevant to the current subsystem.
3. Example— This section provides one or more examples of the tool being used to measure
performance statistics. This section shows the tool being invoked and any output that it generates.
Chapter 9 is Linux specific and contains a series of steps to use when confronted with a slow-performing
Linux system. It explains how to use the previously described Linux performance tools in concert to
pinpoint the cause of the performance problem. This chapter is the most useful if you want to start with a
misbehaving Linux system and just diagnose the problem without necessarily understanding the details of
the tools. Chapters 10 through 12 present case studies in which the methodologies and tools previously
described are used together to solve real-world problems. The case studies highlight Linux performance
tools used to find and fix different types of performance problems: a CPU-bound application, a
latency-sensitive application, and an I/O bound application.
Chapter 13 overviews the performance tools and the opportunities Linux has for improvement.
This book also has two appendixes. Appendix A contains a table of the performance tools discussed in
this book and includes a URL to the latest version of each tool. Appendix A also identifies which Linux
distributions support each particular tool. Finally, Appendix B contains information that explains how to
install
oprofile
, which is a very powerful but hard-to-install tool on a few major Linux distributions.
< Day Day Up >