Previous Section  < Day Day Up >  Next Section

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.

    Previous Section  < Day Day Up >  Next Section