Workshop: Mastering Linux Performance Tools

Level: 
Intermediate

When:

9:00am - 4:00pm

Prerequisites

  • experience with Linux development or administration
  • bring a laptop with a modern browser -- hands-on labs will be performed through the browser

All kinds of applications run on Linux, from web servers to distributed database engines and embedded applications. Troubleshooting performance in the field, especially when invasive profilers can't be used, is a delicate art that requires a solid understanding of the system and low-overhead tools. In this workshop, we will visit a spectrum of Linux performance monitoring tools.

We will start with a simple performance checklist based on the USE method, including tools like top, iostat, vmstat, mpstat, sar, and others. Then, once we identify the overloaded resource, we will dig in deeper using perf: tracepoints, hardware events, dynamic probes, and USDT. We will also collect stack traces of heavy events (CPU usage, disk accesses, network) and visualize them using flame graphs.

Finally, we will discuss the emerging superpower for Linux performance monitoring: BPF and BCC. This is a new kernel technology that enables low-overhead, super-efficient monitoring and tracing tools, which perform aggregation closer to the source where the events occur and provide useful information at a fraction of the cost. We will review a performance checklist based on BCC tools, and explore one-liners from the general-purpose trace and argdist tools.

Outline:

  • Performance metrics and the USE method
  • Performance checklist based on simple, single-purpose monitoring tools
  • Linux performance information sources
  • Linux perf, CPU sampling
  • Resolving stack symbols with debuginfo
  • Visualizing stack samples with flame graphs
  • Kprobes and uprobes for disk, network, and database monitoring
  • Attaching to probe events with perf and perf-tools
  • Introduction to BPF
  • BPF scenarios and the BCC toolkit
  • Dedicated BCC tools
  • General-purpose BCC tools

Speaker: Sasha Goldshtein

CTO of Sela Group, a Microsoft MVP and Regional Director

Sasha Goldshtein is the CTO of Sela Group, a Microsoft MVP and Regional Director, Pluralsight and O'Reilly author, and international consultant and trainer. Sasha is the author of two books and multiple online courses, and a prolific blogger. He is also an active open source contributor to projects focused on system diagnostics, performance monitoring, and tracing -- across multiple operating systems and runtimes. Sasha authored and delivered training courses on Linux performance optimization, event tracing, production debugging, mobile application development, and modern C++. Between his consulting engagements, Sasha speaks at international conferences world-wide.

Find Sasha Goldshtein at

Other Workshops:

Day: Thursday [Full Day]
Day: Friday [Half Day]
by
Day: Thursday [Full Day]
by

.

Tracks

  • Architecting for Failure

    If you're not architecting for failure you're heading for failure

  • Architectures You've Always Wondered About

    Topics like next-gen architecture, self-driving cars, deep learning, and lessons around massive scale.

  • Bare Knuckle Performance

    Killing latency and getting the most out of your hardware

  • Building Great Engineering Cultures & Organizations

    Stories of cultural change in organizations

  • DevEx: The Next Evolution of DevOps

    Removing friction from the developer experience.

  • Distributed Stateful Systems

    Architecting and leveraging NoSQL revisitied

  • Evolving Java and the JVM: Mobile, Micro and Modular

    Although the Java language is holding strong as a developer favourite, new languages and paradigms are being embraced on JVM.

  • JavaScript and Beyond: The Future of the Frontend

    Exploring the great frontend frameworks that make JavaScript so popular and theg JavaScript-based languages revolutionising frontend development.

  • Leading Edge Backend Languages

    Code the future! How cutting-edge programming languages and their more-established forerunners can help solve today and tomorrow’s server-side technical problems.

  • Microservices/Serverless: Patterns and Practices

    Stories of success and failure building modern service and function-based applications, including event sourcing, reactive, decomposition, & more.

  • Modern CS in the Real World

    Applied trends in Computer Science that are likely to affect Software Engineers today.

  • Next Gen Banking: It’s not all Blockchains and ICOs

    Great technologies like Blockchain, smartphones and biometrics must not be limited to just faster banking, but better banking.

  • Observability: Logging, Alerting and Tracing

    Observability in modern large distributed computer systems

  • Operating Systems: LinuxKit, Unikernels, & Beyond

    Applied, practical, & real-world deep-dive into industry adoption of OS, containers and virtualisation, including Linux on Windows, LinuxKit, and Unikernels

  • Security: Red XOR Blue Team

    Security from the defender's AND the attacker's point of view

  • Stream Processing in the Modern Age

    Compelling applications of stream processing & recent advances in the field

  • Tech Ethics in Action

    In this track we will explore real world examples of where companies have made technology decisions driven by ethical as much as technological reasons and what we can learn from their experiences.

  • The Practice & Frontiers of AI

    Learn about machine learning in practice and on the horizon