A Comparison of Linux Performance Tuning Books
Tuning Linux systems for performance is an essential task for any system administrator, but it also is one of the least documented. Without a hard-won understanding, performance tuning often can seem like some kind of black magic or performance art.
I've recently had the opportunity to read two books on the topic: Optimizing Linux Performance, written by Phillip G. Ezolt and part of the HP Professional Books imprint, and Performance Tuning for Linux Servers, edited by Sandra K. Johnson and published by IBM Press. As both of these titles came out of large companies that are throwing a lot of support behind Linux, I thought it would be worthwhile to compare the two books.
First, the similarities. Being that both of these books were written on the same topic, you might expect a fair amount of overlap--and you'd be right. Both of them cover a variety of standard tools for investigating performance problems: top, netstat, sar, oprofile and friends all receive good coverage. Both books also provide some recommendations for the process of performance tuning itself. It's also nice to see that both books provide some example performance tuning scenarios.
The books share a common flaw too. Although they both talk about performance tuning on a single box, occasionally using graphical tools, neither provides serious coverage of tuning an application in an enterprise setting. This task is a different beast altogether from single-box tuning; the tool sets are different, although they do overlap; the kinds of problems and solutions differ widely; and the people involved--it's almost never only one person--need to correlate much more data to come to a solution. For a large Web application such as Amazon.com, it might not be unusual to see 30 or more individual systems--Web servers, load balancers, routers, application servers and databases servers--involved in a single transaction.
These similarities, both good and bad, do not mean these books are identical twins, however. There are a number of differences. Optimizing Linux Performance, a smaller softcover book, covers less ground but does a better job with what it does cover. Linux System Tuning, a serious-looking hardback, seems as though it should provide deeper coverage of more topics, but it is marred by a number of flaws, as discussed below.
Overall, Optimizing Linux Performance (ISBN 0-13-148682-9) is a solid book. Ezolt starts out with an overview of performance tuning and provides a number of tips to help you make system tuning a repeatable and understandable process. He moves on to cover performance analysis tools for system CPU, system memory, process-specific CPU, process-specific memory, disk I/O and networking. He also includes a chapter on using "helpers" to automate using these tools, recording their output and analyzing the data you've collected. He then looks at the tools in situ, addressing specific kinds of performance bottlenecks and walking through three examples he calls "Performance Hunts". Finally, he closes with a chapter addressing the current state of Linux-based performance tools and what can be done to improve them.
At 326 pages, excluding appendices, and 13 chapters, Optimizing Linux Performance isn't a huge book, but I'd say it's worth the $49.99 cover price if you're getting started with performance tuning on Linux.
Performance Tuning for Linux Servers (ISBN 0-13-144753-X) has some problems. The biggest problem I found is it was written by many authors--more than 20--and it reads that way. Information often is repeated and sometimes in contradictory ways, and the style and usability are ragged. I also was put off by the large number of simple errors, such as the claim that ext2fs was the first filesystem on Linux. If the simple stuff is wrong, how can I trust the other information?
The book does have some value though. It provides a much more thorough background on Linux systems than does Optimizing Linux Performance. Performance Tuning for Linux Servers discusses more tools, including Performance Inspector, which I'd never heard of before. It also feels like there is a wider breadth of expertise under the hood of this book.
I expected more from a book by IBM however, and unless you're shooting for completeness, I don't recommend spending the $54.99 for this book. Hopefully an improved second edition that's worth the cost will come along soon; otherwise, look for it at a sale.
-- -pate http://on-ruby.blogspot.com
|Non-Linux FOSS: libnotify, OS X Style||Jun 18, 2013|
|Containers—Not Virtual Machines—Are the Future Cloud||Jun 17, 2013|
|Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer||Jun 12, 2013|
|Weechat, Irssi's Little Brother||Jun 11, 2013|
|One Tail Just Isn't Enough||Jun 07, 2013|
|Introduction to MapReduce with Hadoop on Linux||Jun 05, 2013|
- Containers—Not Virtual Machines—Are the Future Cloud
- Non-Linux FOSS: libnotify, OS X Style
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Linux Systems Administrator
- RSS Feeds
- Introduction to MapReduce with Hadoop on Linux
- Validate an E-Mail Address with PHP, the Right Way
- Weechat, Irssi's Little Brother
- Tech Tip: Really Simple HTTP Server with Python
- New Products
- Poul-Henning Kamp: welcome to
52 min 38 sec ago
- This has already been done
53 min 38 sec ago
- Reply to comment | Linux Journal
1 hour 38 min ago
- Welcome to 1998
2 hours 27 min ago
- notifier shortcomings
2 hours 51 min ago
4 hours 27 min ago
- Android User
4 hours 29 min ago
- Reply to comment | Linux Journal
6 hours 22 min ago
9 hours 12 min ago
- This is a good post. This
14 hours 25 min ago
Free Webinar: Hadoop
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?