Top critical review
37 people found this helpful
A weak companion to Solaris Internals
on August 30, 2006
A Sun colleague recently noted that the consistency of interfaces in Solaris isn't a strong point, and she's right. Anyone who understands much of Solaris has to manage many odd and subtle details. While the concepts that drive Unix variants are indeed powerful, it doesn't mean every contributing engineer grasps and implements them the same way.
As a result, there are differing views in topic areas like performance management, including: proper methodology, or "best practices"; which statistics are useful and how to interpret them; which reports may be significant, trivial, or misleading; and of course, which tools help you get them. As a contributing author to Sun Microsystem's course on Solaris performance, I heard many of those views from many experienced trainers, Sun engineers, and other interested parties. The complexity of the topic leads many people to believe they understand it "the one way it is supposed to be understood." The passion is great, so long as it doesn't lead to a narrow-minded zeal.
Solaris Performance and Tools punts on such religious matters. In my view there are some good and some disappointing outcomes. The book covers two primary areas. One, it is a detailed looks at programs used to measure system and process performance. The coverage ranges from the obvious and everyday to the highly technical and obscure. Second, there are some brief but helpful introductions to mdb and Dtrace, the killer analysis tool introduced with Solaris 10. This book doesn't often propose a method or application of these tools. It does present what the authors feel are 'the' important ways to measure CPU, disk, and I/O efficiency, but relies more on lots of output from lots of tools, commenting on them only occasionally.
There are a lot of listings: command output, script or C code, grepped output. As with the companion book, Solaris Internals, they are not indexed or captioned. In this book, however, these grey boxes aren't annotated either! They are simply left for the reader to study. This idea of printing a book would bring little more than a shrug ten years ago. There wasn't much else you could do with a closed codebase and so few online references. Has nothing happened to improve on that situation?
The code listings appear in Bourne shell, Perl, Dtrace, or C, so the reader must know how to interpret them all to profit from the discussion. But even for a peer technical reader, some kind of analysis, key-line commentary, or occasional emphasis on nonbovious lines...some help would be nice. I know programmers find commenting a time-consuming chore, but a peer reader could do much of the work this book shows on their own, and spare the trees.
The command-line output does illuminate the discussion, as it should. However, it feels like filler after a ehile when you're reading sample output for ping, traceroute, snoop, output for multiple prstat and ps options, not to mention numerous trivial examples of various process tools, such as pkill and pstop. What are we getting from this? If there was something important to say about them, fine, but again, there's no commenting provided.
The notes on observing CPU, disk and I/O measurements are detail-driven and idiomatic. The focus seems to be on subtlety and non-obvious aspects of statistics that either aren't well-explained in other references, or are widely misinterpreted.
I'm happy for the discussion on mdb and kstats. These are hard subjects to absorb. The online documentation for them is lengthy, hard to gloss, and (of course) poorly-commented where sample code or output is shown. This book gets down to the point and makes the task of learning these tools seem far less daunting.
A key stength of this book is the thorough review of tools and what they do. The book would serves well as a reference when a terminal window is not available. The Dtrace Toolkit is reviewed at length, but there is equally useful coverage and more examples online.
Be advised: the front matter and back matter of this book are the same as the Solaris Internals book, not including the table of contents and index. I mention this because it seemed peculiar that the bibliography for a book on performance, mdb, and dtrace referencesd nothing published in the last six years.