
The Complete Guide to Optimizing Systems Performance Written by the winner of the 2013 LISA Award for Outstanding Achievement in System Administration Large-scale enterprise, cloud, and virtualized computing systems have introduced serious performance challenges. Now, internationally renowned performance expert Brendan Gregg has brought together proven methodologies, tools, and metrics for analyzing and tuning even the most complex environments. Systems Performance: Enterprise and the Cloud focuses on Linux® and Unix® performance, while illuminating performance issues that are relevant to all operating systems. You’ll gain deep insight into how systems work and perform, and learn methodologies for analyzing and improving system and application performance. Gregg presents examples from bare-metal systems and virtualized cloud tenants running Linux-based Ubuntu®, Fedora®, CentOS, and the illumos-based Joyent® SmartOS™ and OmniTI OmniOS®. He systematically covers modern systems performance, including the “traditional” analysis of CPUs, memory, disks, and networks, and new areas including cloud computing and dynamic tracing. This book also helps you identify and fix the “unknown unknowns” of complex performance: bottlenecks that emerge from elements and interactions you were not aware of. The text concludes with a detailed case study, showing how a real cloud customer issue was analyzed from start to finish.
I loved your work back when I was an IC, and I'm sure this is a common sentiment across the industry amongst those of us who started systems adjacent! I still refer to your BPF tools and Systems Performance books despite having not written professional code for years now.
Can't wait to read content similar to what you wrote about when at Netflix and Intel albeit about the newer generation of GPUs and ASICs and the newer generation of performance problems!
Maybe you should read something about him before you call him that. I recommend the "Contributions"-section on his Wikipedia-article. And if it is of any relevance to your work: his "Systems Performance: Enterprise and the Cloud" is a comprehensive and excellent guide.
I have pulled out a few miracles using these tools (identifying kernel bottlenecks or profiling programs using ebpf) and it has been well worth the investment to read through the books.
The best I've found so far:
https://cdn.kernel.org/pub/linux/kernel/people/paulmck/perfb...
And some other good reading:
https://www.amazon.com/Systems-Performance-Brendan-Gregg/dp/...
https://fgiesen.wordpress.com/2014/08/18/atomics-and-content...
https://travisdowns.github.io/blog/2020/07/06/concurrency-co...
For example, I really enjoyed and often go back to:
- https://www.oreilly.com/library/view/building-event-driven-m...
- https://www.oreilly.com/library/view/designing-data-intensiv...
- https://www.manning.com/books/100-go-mistakes-and-how-to-avo...
- https://www.amazon.com/Systems-Performance-Brendan-Gregg/dp/...
And more recently:
- https://www.manning.com/books/build-a-large-language-model-f...
- https://www.manning.com/books/the-creative-programmer
- https://www.manning.com/books/the-programmers-brain
- https://www.amazon.com/Understanding-Software-Addison-Wesley...
I also find books about specific technologies that indeed run the risk of being deprecated after a few years to be useful too
- https://www.oreilly.com/library/view/networking-and-kubernet...
- https://www.brendangregg.com/bpf-performance-tools-book.html
Furthermore, nothing keeps you from reading books about topics peripheral to computer science, say to keep up with the general vibes:
- https://www.amazon.com/Probabilistic-Machine-Learning-Introd...
- https://www.amazon.com/Deep-Learning-Foundations-Christopher...
- https://www.amazon.com/Joy-Abstraction-Exploration-Category-...
I find that all of these contribute significantly to my growth as an engineer.
Depending on the tech stack you're interested in, I would also strongly suggest reading foundational books that go deep into that platform (e.g. the Java Language Specification if you're into Java [1]). These are not things you necessarily need to read end-to-end or understand completely, but your global understanding of your chosen platform will expand significantly.
Systems Performance by Brendan Gregg is another useful classic. While it's about performance, it touches upon a huge number of important topics (from memory allocation to pretty graphs), perusing it will make you smarter.