BooksWe're book lovers. We like a physical book we can hold. We appreciate good typography and binding. We like the feel of good paper. But what we like most of all about technical books is the amount of time and money they can save us. Even though technical books have become very expensive, we still find them cost-effective in getting things done quickly. Sometimes one little paragraph saves us hours of time.

Our love of books hasn't blinded us to the usefulness of e-readers. These are great devices, especially for holding reference materials. We'd rather carry a Kindle than five large volumes on a trip.

So here are some of the most useful books we have found. Those that are available for the Kindle we have marked with an *.

We have organized our book list into the following categories:

Big fish in a small bowlPerformance and Capacity Planning

Many of the books on performance and capacity planning also contain information of queuing theory and modeling. All of the books by Menascé and others have information on queuing modeling. But they contain much additional information as well.

These books all take a higher-level look at performance management and capacity planning; in which modeling is just a part of the process. Workload characterization, scalability concerns, and collecting measurement data are other topics that they discuss.

Performance by Design

Daniel A. Menascé, Virgilio A.F. Almeida, and Lawrence W. Dowdy. Prentice Hall PTR, 2004.

Capacity Planning and Performance Modeling: From Mainframes to Client-Server Systems

Daniel A. Menascé, Virgilio A. F. Almeida, and Larry W. Dowdy. Prentice Hall PTR, 1994.

Capacity Planning for Web Performance: Metrics, Models, & Methods

Daniel A. Menascé and Virgilio A.F. Almeida. Prentice Hall PTR, 1998.

Capacity Planning for Web Services: Metrics, Models, and Methods

Daniel A. Menascé and Virgilio A. F. Almeida. Prentice Hall PTR, 2002.

*Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services

Neil J. Gunther. Springer, 2007.

*The Art of Capacity Planning

John Allspaw. O'Reilly, 2008.

Measuring Computer Performance

David J. Lilja. Cambridge University Press, 2000.

USB cableManagement Protocols

There are two different aspects to understanding management protocols. Most people just need to understand the basics of the protocols and how they can be used to manage a system. Developers, however, need to know more details if they are going to use the protocol to instrument their software. In the list below we point out the intended audience for each book..

Understanding SNMP MIBs

David Perking and Evan McGinnis. Prentice Hall PTR, 1997

Very dense material. But if you need to understand every nuance of SNMP, then this is the book. Useful for both users and developers.

Essential SNMP, 2nd Edition

Douglas R. Mauro & Kevin J. Schmidt. O'Reilly, 2005.

Our favorite overview book on SNMP. Well written and organized, it's a great book for both users and developers.

SNMP MIB Handbook

Larry Walsh, Wyndham Press, 2008.

Useful for both users and developers.

Windows NT SNMP

James D. Murray. O'Reilly, 1998.

Good book for developers that need to instrument their Windows programs using SNMP.

Java and JMX: Building Manageable Systems

Heather Kreger, Ward Harold, and Leigh Williamson. Addison-Wesley, 2003.

Detailed information for programmers on JMX instrumentation.

JMX: Managing J2EE with Java Management Extensions

Juha Lindfors, Marc Fleury, and the JBoss Group LLC. Sams, 2002.

Detailed information for programmers on JMX instrumentation.

Developing WMI Solutions: A Guide to Windows Management Instrumentation

Craig Tunstall and Gwyn Cole. Addison-Wesley, 2003.

Detailed information for programmers instrumenting their Windows programs using WMI.

*.Net System Management Services

Alexander Golomshtok. Apress, 2003.

Information useful for users and developers.

People waiting in lineQueuing Theory, Modeling, and Simulation

Don't panic. You don't need a Ph.D. in mathematics to understand the basics of queuing theory. In fact, there are actually two versions of queuing theory. Classical queuing theory is based on probability, and has some very nasty looking proofs. A newer version, operational queuing theory, derives all of the same results with much simpler math.

Quantitative Systems Performance

Edward D. Lazowske, John Zahorjan, G. Scott Graham, and Kennith C. Sevcik. Prentice Hall, Inc. 1984.

This is our favorite book on queuing theory and queuing models. We like it for two reasons. First, it is only concerned with computer system applications. Second, it is based on operational queuing theory, so it's quite easy to understand.

The bad news is that this book is out of print. The good news is that it's available on the internet for free. Get it at

Probability, Statistics, and Queuing Theory

Arnold O. Allen. Academic Press, 1978.

If you want a more classical approach to queuing theory, you'll find it here. It also includes the equation for the rth percentile value of an exponential distributed random variable, which is very useful and not derived in many books.

*Simulation, Fourth Edition

Sheldon M. Ross. Academic Press, 2006.

Simulation is an alternative to using analytical queuing models. This book gives a good introduction to the subject.

SpeedometerPerformance Engineering

Performance considerations are often ignored or downplayed during development, which can lead to big problems. Fixing a performance problem after development can be very expensive.

Performance engineering is meant to avoid these problems. These books provide a good overview of the approach. They are meant for developers, but other might find them interesting as well.

Performance Engineering of Software Systems

Connie U. Smith. Addison Wesley Publishing Company, 1990

Performance Solutions

Connie U. Smith and Lloyd G. Williams. Addison Wesley, 2002.

The Practical Performance Analyst: Performance-By-Design Techniques for Distributed Systems

Neil J. Gunther. McGraw-Hill, 1998.


DatabaseOperating Systems, Databases, and Other Technologies

Programs run under some operating system, and they often use databases to store their data. You often need to understand these other systems to fix performance problems. Operating systems and databases can be "tuned" by changing options.

These books cover some of these other technologies that are useful for anyone involved with performance management.

Sun Performance and Tuning: Java™ and the Interner, second edition

Adrian Cockcroft and Richard Pettit. Sun Microsystems Press, 1998.

Capacity Planning for Internet Services: Quick Planning Techniques for High Growth Rates

Adrian Cockcroft and Bill Walker. Sun Microsystems Press, 2001.

Windows 2000 Performance Guide

Mark Friedman and Odysseas Pentakalos. O'Reilly, 2002.

Microsoft Windows Internals, Fourth Edition

Mark E. Russinovich and David A. Solomon. Microsoft Press, 2005.

Optimizing Linux Performance: A Hands-On Guide to Linux Performance Tools

Phillip G. Ezolt. Prentice Hlll PTR, 2005.

Java Performance Tuning

Jack Shirazi. O'Reilly, 2003

Microsoft Windows 2000 Performance Tuning Technical Reference

John Paul Mueller and Irfan Chaudhry. Microsoft Press, 2000.

Microsoft SQL Server 2000 Performance Tuning

Edward Whalen, Marcilina Garcia, Steve Adrien DeLuca, and Dean Thompson. Microsoft Press, 2001.

Improving .NET Application Performance and Scalability

J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman. Microsoft Press, 2004.

*High Performance MySQL, Second Edition

Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy D. Zawodny, Arjen Lentz & Derek J. Balling. O'Reilly, 2008.