0%

Book Description

Systems Performance, Second Edition, covers concepts, strategy, tools, and tuning for operating systems and applications, using Linux-based operating systems as the primary example. A deep understanding of these tools and techniques is critical for developers today. Implementing the strategies described in this thoroughly revised and updated edition can lead to a better end-user experience and lower costs, especially for cloud computing environments that charge by the OS instance.

Systems performance expert and best-selling author Brendan Gregg summarizes relevant operating system, hardware, and application theory to quickly get professionals up to speed even if theyve never analyzed performance before. Gregg then provides in-depth explanations of the latest tools and techniques, including extended BPF, and shows how to get the most out of cloud, web, and large-scale enterprise systems. Key topics covered include

  • Hardware, kernel, and application internals, and how they perform

  • Methodologies for rapid performance analysis of complex systems

  • Optimizing CPU, memory, file system, disk, and networking usage

  • Sophisticated profiling and tracing with perf, Ftrace, and BPF (BCC and bpftrace)

  • Performance challenges associated with cloud computing hypervisors

  • Benchmarking more effectively

Featuring up-to-date coverage of Linux operating systems and environments, Systems Performance, Second Edition, also addresses issues that apply to any computer system. The book will be a go-to reference for many years to come and, like the first edition, required reading at leading tech companies.

Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

Table of Contents

  1. Cover Page
  2. About This eBook
  3. Half Title Page
  4. Title Page
  5. Copyright Page
  6. Dedication Page
  7. Contents at a Glance
  8. Contents
  9. Preface
    1. About This Edition
    2. About This Book
  10. Acknowledgments
  11. About the Author
  12. Chapter 1. Introduction
    1. 1.1 Systems Performance
    2. 1.2 Roles
    3. 1.3 Activities
    4. 1.4 Perspectives
    5. 1.5 Performance Is Challenging
    6. 1.6 Latency
    7. 1.7 Observability
    8. 1.8 Experimentation
    9. 1.9 Cloud Computing
    10. 1.10 Methodologies
    11. 1.11 Case Studies
    12. 1.12 References
  13. Chapter 2. Methodologies
    1. 2.1 Terminology
    2. 2.2 Models
    3. 2.3 Concepts
    4. 2.4 Perspectives
    5. 2.5 Methodology
    6. 2.6 Modeling
    7. 2.7 Capacity Planning
    8. 2.8 Statistics
    9. 2.9 Monitoring
    10. 2.10 Visualizations
    11. 2.11 Exercises
    12. 2.12 References
  14. Chapter 3. Operating Systems
    1. 3.1 Terminology
    2. 3.2 Background
    3. 3.3 Kernels
    4. 3.4 Linux
    5. 3.5 Other Topics
    6. 3.6 Kernel Comparisons
    7. 3.7 Exercises
    8. 3.8 References
  15. Chapter 4. Observability Tools
    1. 4.1 Tool Coverage
    2. 4.2 Tool Types
    3. 4.3 Observability Sources
    4. 4.4 sar
    5. 4.5 Tracing Tools
    6. 4.6 Observing Observability
    7. 4.7 Exercises
    8. 4.8 References
  16. Chapter 5. Applications
    1. 5.1 Application Basics
    2. 5.2 Application Performance Techniques
    3. 5.3 Programming Languages
    4. 5.4 Methodology
    5. 5.5 Observability Tools
    6. 5.6 Gotchas
    7. 5.7 Exercises
    8. 5.8 References
  17. Chapter 6. CPUs
    1. 6.1 Terminology
    2. 6.2 Models
    3. 6.3 Concepts
    4. 6.4 Architecture
    5. 6.5 Methodology
    6. 6.6 Observability Tools
    7. 6.7 Visualizations
    8. 6.8 Experimentation
    9. 6.9 Tuning
    10. 6.10 Exercises
    11. 6.11 References
  18. Chapter 7. Memory
    1. 7.1 Terminology
    2. 7.2 Concepts
    3. 7.3 Architecture
    4. 7.4 Methodology
    5. 7.5 Observability Tools
    6. 7.6 Tuning
    7. 7.7 Exercises
    8. 7.8 References
  19. Chapter 8. File Systems
    1. 8.1 Terminology
    2. 8.2 Models
    3. 8.3 Concepts
    4. 8.4 Architecture
    5. 8.5 Methodology
    6. 8.6 Observability Tools
    7. 8.7 Experimentation
    8. 8.8 Tuning
    9. 8.9 Exercises
    10. 8.10 References
  20. Chapter 9. Disks
    1. 9.1 Terminology
    2. 9.2 Models
    3. 9.3 Concepts
    4. 9.4 Architecture
    5. 9.5 Methodology
    6. 9.6 Observability Tools
    7. 9.7 Visualizations
    8. 9.8 Experimentation
    9. 9.9 Tuning
    10. 9.10 Exercises
    11. 9.11 References
  21. Chapter 10. Network
    1. 10.1 Terminology
    2. 10.2 Models
    3. 10.3 Concepts
    4. 10.4 Architecture
    5. 10.5 Methodology
    6. 10.6 Observability Tools
    7. 10.7 Experimentation
    8. 10.8 Tuning
    9. 10.9 Exercises
    10. 10.10 References
  22. Chapter 11. Cloud Computing
    1. 11.1 Background
    2. 11.2 Hardware Virtualization
    3. 11.3 OS Virtualization
    4. 11.4 Lightweight Virtualization
    5. 11.5 Other Types
    6. 11.6 Comparisons
    7. 11.7 Exercises
    8. 11.8 References
  23. Chapter 12. Benchmarking
    1. 12.1 Background
    2. 12.2 Benchmarking Types
    3. 12.3 Methodology
    4. 12.4 Benchmark Questions
    5. 12.5 Exercises
    6. 12.6 References
  24. Chapter 13. perf
    1. 13.1 Subcommands Overview
    2. 13.2 One-Liners
    3. 13.3 perf Events
    4. 13.4 Hardware Events
    5. 13.5 Software Events
    6. 13.6 Tracepoint Events
    7. 13.7 Probe Events
    8. 13.8 perf stat
    9. 13.9 perf record
    10. 13.10 perf report
    11. 13.11 perf script
    12. 13.12 perf trace
    13. 13.13 Other Commands
    14. 13.14 perf Documentation
    15. 13.15 References
  25. Chapter 14. Ftrace
    1. 14.1 Capabilities Overview
    2. 14.2 tracefs (/sys)
    3. 14.3 Ftrace Function Profiler
    4. 14.4 Ftrace Function Tracing
    5. 14.5 Tracepoints
    6. 14.6 kprobes
    7. 14.7 uprobes
    8. 14.8 Ftrace function_graph
    9. 14.9 Ftrace hwlat
    10. 14.10 Ftrace Hist Triggers
    11. 14.11 trace-cmd
    12. 14.12 perf ftrace
    13. 14.13 perf-tools
    14. 14.14 Ftrace Documentation
    15. 14.15 References
  26. Chapter 15. BPF
    1. 15.1 BCC
    2. 15.2 bpftrace
    3. 15.3 References
  27. Chapter 16. Case Study
    1. 16.1 An Unexplained Win
    2. 16.2 Additional Information
    3. 16.3 References
  28. Appendix A: USE Method: Linux
    1. Physical Resources
    2. Software Resources
    3. A.1 References
  29. Appendix B: sar Summary
  30. Appendix C: bpftrace One-Liners
    1. CPUs
    2. Memory
    3. File Systems
    4. Disks
    5. Networking
  31. Appendix D: Solutions to Selected Exercises
    1. Chapter 2—Methodology
    2. Chapter 3—Operating Systems
    3. Chapter 6—CPUs
    4. Chapter 7—Memory
    5. Chapter 8—File Systems
    6. Chapter 9—Disks
    7. Chapter 11—Cloud Computing
  32. Appendix E: Systems Performance Who’s Who
    1. E.1 References
  33. Glossary
  34. Index
  35. Code Snippets
13.59.113.226