Slutsåld
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 fo...
Use BPF Tools to Optimize Performance, Fix Problems, and See Inside Running Systems BPF-based performance tools give you unprecedented visibility into systems and applications, so you can optimize performance, troubleshoot code, strengthen securit...
Brendan Gregg (San Francisco, CA area) is Lead Performance Engineer at Joyent, where he analyzes performance and scalability for small to large cloud computing environments, at any level of the software stack. He is primary author of DTrace and co-author of Solaris Performance and Tools (both from Prentice Hall); as well as numerous articles about systems performance. Previously performance lead and kernel engineer at Sun Microsystems, he has also consulted and trained IT professionals on performance optimization. He developed DTraceToolkit and ZFS L2ARC, and many of his DTrace scripts are shipped by default in Mac OS X and Oracle Solaris 11. His recent work has included performance visualizations.
Acknowledgments xxxiii
About the Author xxxv
Chapter 1: Introduction 1
1.1 Systems Performance 1
1.2 Roles 2
1.3 Activities 3
1.4 Perspectives 4
1.5 Performance Is Challenging 4
1.6 Latency 6
1.7 Dynamic Tracing 7
1.8 Cloud Computing 8
1.9 Case Studies 9
Chapter 2: Methodology 15
2.1 Terminology 16
2.2 Models 17
2.3 Concepts 18
2.4 Perspectives 32
2.5 Methodology 35
2.6 Modeling 57
2.7 Capacity Planning 65
2.8 Statistics 69
2.9 Monitoring 74
2.10 Visualizations 76
2.11 Exercises 82
2.12 References 82
Chapter 3: Operating Systems 85
3.1 Terminology 86
3.2 Background 87
3.3 Kernels 105
3.4 Exercises 113
3.5 References 113
Chapter 4: Observability Tools 115
4.1 Tool Types 116
4.2 Observability Sources 120
4.3 DTrace 133
4.4 SystemTap 144
4.5 perf 149
4.6 Observing Observability 150
4.7 Exercises 151
4.8 References 151
Chapter 5: Applications 153
5.1 Application Basics 153
5.2 Application Performance Techniques 158
5.3 Programming Languages 163
5.4 Methodology and Analysis 167
Thread State Analysis 168
5.5 Exercises 186
5.6 References 187
Chapter 6: CPUs 189
6.1 Terminology 190
6.2 Models 191
6.3 Concepts 193
6.4 Architecture 199
6.5 Methodology 214
6.6 Analysis 224
6.7 Experimentation 254
6.8 Tuning 256
6.9 Exercises 260
6.10 References 262
Chapter 7: Memory 265
7.1 Terminology 266
7.2 Concepts 267
7.3 Architecture 272
7.4 Methodology 289
7.5 Analysis 295
7.6 Tuning 314
7.7 Exercises 319
7.8 References 320
Chapter 8: File Systems 323
8.1 Terminology 324
8.2 Models 325
8.3 Concepts 326
8.4 Architecture 337
8.5 Methodology 353
8.6 Analysis 362
8.7 Experimentation 383
8.8 Tuning 387
8.9 Exercises 391
8.10 References 392
Chapter 9: Disks 395
9.1 Terminology 396
9.2 Models 397
9.3 Concepts 399
9.4 Architecture 407
9.5 Methodology 421
9.6 Analysis 431
9.7 Experimentation 465
9.8 Tuning 467
9.9 Exercises 470
9.10 References 471
Chapter 10: Network 473
10.1 Terminology 474
10.2 Models 474
10.3 Concepts 476
10.4 Architecture 483
10.5 Methodology 493
10.6 Analysis 503
10.7 Expe...