From black art to systematic approach
… [T]here are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns – the ones we don’t know we don’t know….
This quotation, from former United States Secretary of Defense Donald Rumsfeld, reveals the challenge of system performances. To properly investigate a problem, we need to get away from unknown unknowns, at the risk of investigating in the wrong direction.
Even if it is a highly practical book, using tools from Linux- and Solaris- based operating systems, the book covers all the required background that is applicable to any system. The five main chapters about CPU, memory, file system, disk, and network, are divided in two parts: theory and practice.
The book, despite its size, is not a reference book. Advanced topics are summarized so that you are aware of their existence and can study them from additional resources. In the same way, commands used in the book are not presented in great details. This is something that surprises me at first. I was prepared for a lot more commands but the author succeeded in finding the right balance between command outputs and explanations. I astonished myself how much I was captivated by the book (system performance is not a subject for which I have a particular interest).
This is a really good book to start on the subject, particularly adapted for a developer with basic knowledge of Linux. However, this book will not help you to solve performance of Virtual machine-based languages. These virtual machines act as system of their own and whole books had been published on these topics instead.
What I like about is this book is it doesn’t just help you to use the commands. It help you understand what to look for and how to retrieve the information using various tools. The author demonstrates system performance is not a black art, but the result of hard work. This book will not make you an expert but you will be in a far better position to diagnose problems with confidence. The last chapter is a case study that provides an over-the-shoulder view of how performance engineers approaches an issue, and glues together the book content by showing how tools and methodologies are applied in practice. I was bluffed!