• Stars
    star
    1,260
  • Rank 37,337 (Top 0.8 %)
  • Language
    HTML
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Examples and hands-on labs for Linux tracing tools workshops

Linux Tracing Workshops Materials

This repository contains examples and hands-on labs for various Linux tracing workshops, focusing on modern tracing tools. To perform these labs, you will need a Linux box that meets several prerequisites. You can also use an EC2 instance supplied by the instructor.


Prerequisites

  1. Linux 4.6+ (the distribution doesn't matter; tested on Ubuntu and Fedora Core)
  2. perf
  3. perf-map-agent
  4. FlameGraph
  5. perf-tools
  6. bcc
  7. OpenJDK
  8. The systemtap-sdt-dev package on Ubuntu or the systemtap-sdt-devel package on Fedora/RHEL
  9. Node.js built from source with configure --with-dtrace
  10. MySQL or MariaDB built from source with -DENABLE_DTRACE=1
  11. PostgreSQL built from source with configure --enable-dtrace
  12. MySQL Python Connector

If you're using Fedora 24+, try the experimental setup script, which can fetch you a recent kernel from mainline and install all the packages and tools you need for this workshop. Use at your own risk!


Strigo Virtual Environment

When this workshop is delivered as instructor-led training, the instructor will provision a Strigo virtual classroom (EC2 instances) for each student. To use the Strigo virtual environment:

  1. Log in to Strigo using the link provided by the instructor (you can log in with Google or create a new account, no verification required)
  2. Enter the classroom token (four characters) provided by the instructor to join the classroom
  3. Navigate to the Lab tab (fourth from the top, the icon that looks like a test tube) to get your EC2 instance started

Labs

  1. Probing Tracepoints with ftrace
  2. CPU Sampling with perf and Flame Graphs
  3. Using BPF Tools: Broken File Opens
  4. Using BPF Tools: Slow File I/O
  5. Using BPF Tools: Chasing a Memory Leak
  6. Using BPF Tools: Database and Disk Stats and Stacks
  7. Using BPF Tools: Node and JVM USDT Probes
  8. Writing BPF Tools: setuidsnoop
  9. Writing BPF Tools: dbslower
  10. Writing BPF Tools: Contention Stats and Stacks
  11. Writing BPF Tools: From BCC GitHub Issues
  12. Using perf Tools: Broken File Opens
  13. Using BPF Tools: trace and argdist One-Liners
  14. Using BPF Tools: CPU and Off-CPU Investigation
  15. Using perf Tools: Slow File I/O
  16. Using BPF Tools: Node Blocked Time Analysis
  17. Using BPF Tools: Node Garbage Collections
  18. Using BPF Tools: Node File Opens
  19. Using BPF Tools: Node Slow MySQL Queries
  20. Node Profiling with V8
  21. Node Core Dump Analysis with llnode
  22. Node Memory Leak Analysis
  23. Node Slow HTTP Requests
  24. Node Slow DNS
  25. Node Leaky Slowdown

(C) Sasha Goldshtein, 2015-2017. All rights reserved.

More Repositories

1

minidumper

Write minidumps of .NET processes with full memory, only CLR heaps, or no memory at all
C#
219
star
2

windbg-extensions

Various extensions for WinDbg
C
166
star
3

etrace

Command-line tool for ETW tracing on files and real-time events
C#
144
star
4

msos

Command-line environment a-la WinDbg for executing SOS commands without having SOS available.
C#
96
star
5

shmemq-blog

Shared memory queue benchmarks and tracing for blog
C
68
star
6

template-metaprogramming-day

Materials for the C++ Template Metaprogramming one-day workshop
C++
63
star
7

LiveStacks

Collect, aggregate, and display live stack traces for ETW events, including CPU sampling, of native and .NET processes.
C#
52
star
8

simd-workshop

Exercises and sample code for a C# SIMD (vectorization) workshop
C#
34
star
9

Memory

Test program for allocating various kinds of memory
C++
24
star
10

spark-workshop

Labs and data files for a full-day Spark workshop
Shell
24
star
11

dntrace

Trace .NET Core runtime events and summarize them
Python
22
star
12

jobrun

Run a process in a job and control its resource quotas
C++
21
star
13

marshalfx

Extensions for the Visual Studio C++/CLI marshaling framework
C++
17
star
14

AdvancedDotNetDebugging

Slides and demos for my Advanced .NET Debugging with WinDbg and SOS talk.
11
star
15

rentahome

Rent a Home demo application for Android, iOS, Windows Phone 8, and Windows 8. Used as a demo in Windows Azure Mobile Services presentations.
Objective-C
10
star
16

wams-android

Windows Azure Mobile Services unofficial Android SDK
Java
9
star
17

libstapsdt-jni

Java wrapper for libstapsdt: enables JVM applications to create USDT probes dynamically
C++
8
star
18

production-diagnostics-day

Materials and hands-on labs for a production diagnostics workshop
C#
5
star
19

cool-cpp-things

C++
4
star
20

docker-aci-workshop

Docker and Azure Container Instances workshop
HTML
3
star
21

ETLFlameGraph

Generate flame graphs from Event Tracing for Windows (ETW) stack trace recordings
C#
2
star
22

sosloader

Automatically loads SOS based on information present in the dump file
C#
2
star
23

swift-simple-weather

Simple weather iOS app in Swift that demonstrates unit tests and UI tests with SBTUITestTunnel
Swift
2
star
24

r-workshop

R workshop with tutorial and data exploration exercises
HTML
2
star
25

pinvoke-stack-bug

Demo code for a P/Invoke bug caused by structure packing in output parameters overwriting an unrelated stack variable
C#
2
star
26

offset2source

A tool that converts module (and optional method) instruction offsets back to the .cpp source file and line number.
C++
1
star
27

playground

Sasha's Git Playground
JavaScript
1
star
28

wbext

Example WinDbg extension written in C#
C#
1
star
29

dotfiles

My dotfiles (Vim, bash, screen, etc.)
Vim Script
1
star
30

PostPCDemos

Demos from PostPC HUJI course
Java
1
star
31

invtsc

Print the CPU clock cycle counter as reported by rdtsc on Intel processors, and report invariant TSC availability
C
1
star