📊 How to Read Off-CPU Flame Graphs
Off-CPU flame graphs show where threads spend time blocked (waiting), not executing:
- Wide towers = High off-CPU time (major contention hotspots)
- futex_wait = Waiting on futex (mutex/condition variable)
- pthread_mutex_lock = Waiting to acquire mutex
- __lll_lock_wait = Low-level lock wait
Auto-search: Each link opens with ?s=futex_wait to automatically highlight futex_wait frames.
32 Threads (Binlog Disabled)
PERCONA-SERVER 8.4.8-8-bp4
Run 1
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp4/run1_Tier12G_RW_32th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp4
Run 2
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp4/run2_Tier12G_RW_32th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp4
Run 3
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp4/run3_Tier12G_RW_32th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp8
Run 1
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp8/run1_Tier12G_RW_32th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp8
Run 2
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp8/run2_Tier12G_RW_32th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp8
Run 3
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp8/run3_Tier12G_RW_32th.offcpu.svg
64 Threads (Binlog Disabled)
PERCONA-SERVER 8.4.8-8-bp4
Run 1
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp4/run1_Tier12G_RW_64th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp4
Run 2
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp4/run2_Tier12G_RW_64th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp4
Run 3
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp4/run3_Tier12G_RW_64th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp8
Run 1
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp8/run1_Tier12G_RW_64th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp8
Run 2
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp8/run2_Tier12G_RW_64th.offcpu.svg
PERCONA-SERVER 8.4.8-8-bp8
Run 3
🔍 futex_wait
benchmark_logs/percona-server/8.4.8-8-bp8/run3_Tier12G_RW_64th.offcpu.svg