OS performance metrics aren't always easy for system administrators to track. For applications to perform well, administrators need all the information from observability tools to tune the OS. One such tool is DTrace.
In System Performance: Enterprise and the Cloud, kernel expert Brendan Gregg details OS and application performance metrics, tools and tuning options for Linux- and Solaris-based systems. The book covers kernel essentials, available performance monitoring and tuning frameworks, how to manage application performance from the OS, and the data center elements that operating systems rely on (CPUs, memory, network and more). It also looks at the effects of cloud computing, such as OS isolation.
Chapter 4, Observability Tools, explores the differences between tools that track data from each process or from the system via counters or tracing. It teaches readers about underlying technologies and interfaces before delving into the main OS performance observability frameworks: /proc, kstat, /sys, DTrace and SystemTap.
The free chapter excerpt includes a DTrace tutorial to get systems administrators started with the framework's programming language and tool. DTrace is a framework based on static and dynamic tracing:
A key difference of DTrace from other tracing frameworks (e.g., syscall tracing) is that DTrace is designed to be production-safe, with minimized performance overhead. One way it does this is by use of per-CPU kernel buffers, which improve memory locality, reduce cache coherency overheads, and can remove the need for synchronization locks. ... DTrace also provides a set of actions that can summarize and filter data in-kernel, which also reduces data overheads.
Download the full chapter excerpt here to learn about DTrace probes, tracing, arguments, the DTrace language, variable and actions, scripting and more.
Editor's note: This excerpt is from System Performance: Enterprise and the Cloud, authored by Brendan Gregg and published by Pearson/Prentice Hall Professional, Oct. 2013, ISBN 9780133390094. Gregg also authored DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X, and FreeBSD and co-authored Solaris Performance and Tools: DTrace and mdb techniques for Solaris 10 and OpenSolaris. He is senior performance architect at Netflix and previously worked for Sun Microsystems and Oracle.