Book description
"The Solaris™Internals volumes are simply the best and most comprehensive treatment of the Solaris (and OpenSolaris) Operating Environment. Any person using Solaris--in any capacity--would be remiss not to include these two new volumes in their personal library. With advanced observability tools in Solaris (like DTrace), you will more often find yourself in what was previously unchartable territory. Solaris™ Internals, Second Edition, provides us a fantastic means to be able to quickly understand these systems and further explore the Solaris architecture--especially when coupled with OpenSolaris source availability."
--Jarod Jenson, chief systems architect, Aeysis
"The Solaris™ Internals volumes by Jim Mauro and Richard McDougall must be on your bookshelf if you are interested in in-depth knowledge of Solaris operating system internals and architecture. As a senior Unix engineer for many years, I found the first edition of Solaris™ Internals the only fully comprehensive source for kernel developers, systems programmers, and systems administrators. The new second edition, with the companion performance and debugging book, is an indispensable reference set, containing many useful and practical explanations of Solaris and its underlying subsystems, including tools and methods for observing and analyzing any system running Solaris 10 or OpenSolaris."
--Marc Strahl, senior UNIX engineer
Solaris™ Performance and Tools provides comprehensive coverage of the powerful utilities bundled with Solaris 10 and OpenSolaris, including the Solaris Dynamic Tracing facility, DTrace, and the Modular Debugger, MDB. It provides a systematic approach to understanding performance and behavior, including:
Analyzing CPU utilization by the kernel and applications, including reading and understanding hardware counters
Process-level resource usage and profiling
Disk IO behavior and analysis
Memory usage at the system and application level
Network performance
Monitoring and profiling the kernel, and gathering kernel statistics
Using DTrace providers and aggregations
MDB commands and a complete MDB tutorial
The Solaris™ Internals volumes make a superb reference for anyone using Solaris 10 and OpenSolaris.
Table of contents
- Copyright
- Foreword
- Preface
- About the Authors
- Acknowledgments
-
One. Observability Methods
- 1. Introduction to Observability Tools
-
2. CPUs
- 2.1. Tools for CPU Analysis
- 2.2. vmstat Tool
- 2.3. CPU Utilization
- 2.4. CPU Saturation
- 2.5. psrinfo Command
- 2.6. uptime Command
- 2.7. sar Command
- 2.8. Clock Tick Woes
- 2.9. mpstat Command
- 2.10. Who Is Using the CPU?
- 2.11. CPU Run Queue Latency
- 2.12. CPU Statistics Internals
- 2.13. Using DTrace to Explain Events from Performance Tools
- 2.14. DTrace Versions of runq-sz, %runocc
- 2.15. DTrace Probes for CPU States
-
3. Processes
- 3.1. Tools for Process Analysis
- 3.2. Process Statistics Summary: prstat
- 3.3. Process Status: ps
- 3.4. Tools for Listing and Controlling Processes
-
3.5. Process Introspection Commands
- 3.5.1. Process Stack: pstack
- 3.5.2. Process Memory Map: pmap -x
- 3.5.3. Process File Table: pfiles
- 3.5.4. Execution Time Statistics for a Process: ptime
- 3.5.5. Process Signal Disposition: psig
- 3.5.6. Process Libraries: pldd
- 3.5.7. Process Flags: pflags
- 3.5.8. Process Credentials: pcred
- 3.5.9. Process Arguments: pargs
- 3.5.10. Process Working Directory: pwdx
- 3.6. Examining User-Level Locks in a Process
- 3.7. Tracing Processes
- 3.8. Java Processes
-
4. Disk Behavior and Analysis
- 4.1. Terms for Disk Analysis
- 4.2. Random vs. Sequential I/O
- 4.3. Storage Arrays
- 4.4. Sector Zoning
- 4.5. Max I/O Size
- 4.6. iostat Utility
- 4.7. Disk Utilization
- 4.8. Disk Saturation
- 4.9. Disk Throughput
- 4.10. iostat Reference
- 4.11. Reading iostat
- 4.12. iostat Internals
- 4.13. sar -d
- 4.14. Trace Normal Form (TNF) Tracing for I/O
- 4.15. DTrace for I/O
- 4.16. Disk I/O Time
- 4.17. DTraceToolkit Commands
- 4.18. DTraceTazTool
- 5. File Systems
-
6. Memory
- 6.1. Tools for Memory Analysis
- 6.2. vmstat(1M) Command
- 6.3. Types of Paging
- 6.4. Physical Memory Allocation
- 6.5. Relieving Memory Pressure
- 6.6. Scan Rate as a Memory Health Indicator
- 6.7. Process Virtual and Resident Set Size
- 6.8. Using pmap to Inspect Process Memory Usage
- 6.9. Calculating Process Memory Usage with ps and pmap
- 6.10. Displaying Page-Size Information with pmap
- 6.11. Using DTrace for Memory Analysis
- 6.12. Obtaining Memory Kstats
- 6.13. Using the Perl Kstat API to Look at Memory Statistics
- 6.14. System Memory Allocation Kstats
- 6.15. Kernel Memory with kstat
- 6.16. System Paging Kstats
- 6.17. Observing MMU Performance Impact with trapstat
- 6.18. Swap Space
-
7. Networks
- 7.1. Terms for Network Analysis
- 7.2. Packets Are Not Bytes
- 7.3. Network Utilization
- 7.4. Network Saturation
- 7.5. Network Errors
- 7.6. Misconfigurations
-
7.7. Systemwide Statistics
- 7.7.1. netstat Command
- 7.7.2. kstat Command
- 7.7.3. nx.se Tool
- 7.7.4. nicstat Tool
- 7.7.5. SNMP
- 7.7.6. checkcable Tool
- 7.7.7. ping Tool
- 7.7.8. traceroute Tool
- 7.7.9. snoop Tool
- 7.7.10. TTCP
- 7.7.11. pathchar Tool
- 7.7.12. ntop Tool
- 7.7.13. NFS Client Statistics: nfsstat -c
- 7.7.14. NFS Server Statistics: nfsstat -s
- 7.8. Per-Process Network Statistics
- 7.9. TCP Statistics
- 7.10. IP Statistics
- 7.11. ICMP Statistics
- 8. Performance Counters
- 9. Kernel Monitoring
-
Two. Observability Infrastructure
-
10. Dynamic Tracing
- 10.1. Introduction to DTrace
- 10.2. The Basics
- 10.3. Inspecting Java Applications with DTrace
- 10.4. DTrace Architecture
- 10.5. Summary
- 10.6. Probe Reference
- 10.7. MDB Reference
-
11. Kernel Statistics
- 11.1. C-Level Kstat Interface
- 11.2. Command-Line Interface
- 11.3. Using Perl to Access kstats
- 11.4. Snooping a Program’s kstat Use with DTrace
- 11.5. Adding Statistics to the Solaris Kernel
- 11.6. Additional Information
-
10. Dynamic Tracing
-
Three. Debugging
- 12. The Modular Debugger
-
13. An MDB Tutorial
- 13.1. Invoking MDB
-
13.2. MDB Command Syntax
- 13.2.1. Expressions
- 13.2.2. Symbols
- 13.2.3. Formatting Metacharacters
- 13.2.4. Formatting Characters
- 13.2.5. dcmds
- 13.2.6. Walkers
- 13.2.7. Macros
- 13.2.8. Pipelines
- 13.2.9. Piping to UNIX Commands
- 13.2.10. Obtaining Symbolic Type Information
- 13.2.11. Variables
- 13.2.12. Walkers, Variables, and Expressions Combined
- 13.3. Working with Debugging Targets
- 13.4. GDB-to-MDB Reference
-
13.5. dcmd and Walker Reference
- 13.5.1. Commands
- 13.5.2. Comments
- 13.5.3. Expressions
- 13.5.4. Symbols
- 13.5.5. dcmds
- 13.5.6. Variables
- 13.5.7. Read Formats
- 13.5.8. Write Formats
- 13.5.9. Search Formats
- 13.5.10. General dcmds
- 13.5.11. Target-Related dcmds
- 13.5.12. CTF-Related
- 13.5.13. Kernel: proc-Related
- 13.5.14. Kernel: Thread-Related
- 13.5.15. Kernel: Synchronization-Related
- 13.5.16. Kernel: CPU-Related
- 13.5.17. Kernel: Memory-Related
- 13.5.18. Kernel: kmem-Related
- 13.5.19. Process: Target-Related
- 13.5.20. Kernel: kmdb-Related
-
14. Debugging Kernels
-
14.1. Working with Kernel Cores
- 14.1.1. Locating and Attaching the Target
- 14.1.2. Examining Kernel Core Summary Information
- 14.1.3. Examining the Message Buffer
- 14.1.4. Obtaining a Stack Trace of the Running Thread
- 14.1.5. Which Process?
- 14.1.6. Disassembling the Suspect Code
- 14.1.7. Displaying General-Purpose Registers
- 14.1.8. Navigating the Stack Backtrace
- 14.1.9. Looking at the Status of the CPUs
- 14.1.10. Traversing Stack Frames in SPARC Architectures
- 14.1.11. Listing Processes and Process Stacks
- 14.1.12. Global Memory Summary
- 14.1.13. Listing Network Connections
- 14.1.14. Listing All Kernel Threads
- 14.1.15. Other Notable Kernel dcmds
- 14.2. Examining User Process Stacks within a Kernel Image
- 14.3. Switching MDB to Debug a Specific Process
-
14.4. kmdb, the Kernel Modular Debugger
- 14.4.1. Diagnosing with kmdb and moddebug
- 14.4.2. Booting with the Kernel Debugger
- 14.4.3. Configuring a tty Console on x86
- 14.4.4. Investigating Hangs
- 14.4.5. Collecting Information about Panics
- 14.4.6. Working with Debugging Targets
- 14.4.7. Setting Breakpoints
- 14.4.8. Forcing a Crash Dump with halt -d
- 14.4.9. Forcing a Dump with kmdb
- 14.5. Kernel Built-In MDB dcmds
-
14.1. Working with Kernel Cores
- Appendices
- Bibliography
Product information
- Title: Solaris™ Performance and Tools: DTrace and MDB Techniques for Solaris 10 and OpenSolaris
- Author(s):
- Release date: July 2006
- Publisher(s): Pearson
- ISBN: 0131568191
You might also like
book
Solaris 10 System Administration Exam Prep™
A new edition of this title is available, ISBN-10: 0789737906 ISBN-13: 9780789737908 The Solaris 10 System …
book
Solaris™ 10 ZFS Essentials
The ZFS file system offers a dramatic advance in data management with an innovative approach to …
book
Solaris™ 10 System Administration Essentials
is the first book to concisely yet comprehensively cover all of the breakthrough features of the …
book
Oracle® Solaris 10 System Virtualization Essentials
Virtualization and related technologies like hypervisors, which create virtual machines on a single hardware machine, and …