notes

Linux Performance Tools

Mainly about what can be done

General Methodology

Start with questions before tools.

A simple scenario

start with a problem and the steps follow like

It is better to first get the basics before trying out all these

getting these clear first is much better than random guessing

Tools: Observability

Linux Observability Tools

Basic

I would say we can think of 4 four resources. CNMD (Sorry my friend if you happen to know Chinese, CNMD is not a good name, but it memorizes so well): CPU, Network, Memory and Disk

CPU

Network

Memory

Disk

Tools: Benchmarking

The issue of benchmarking is that, most of time, you wont be able to measure the right thing. So really needs to be careful.

unixbench, imbench, sysbench, perf bench

FS/Disk: dd, hdparm, fio

App/lib: ab, wrk, jmeter, openssl

networking: ping, hping3, iperf, ttcp, traceroute, mtr, pchar

Tools: Tracing

Easy (front-end) tools:

Proper:

too many choices.

But me myself am more comfortable with userspace instrumented tracing. I think that is

  1. more likely to measure the right thing
  2. more info

Reference

Linux Performance Tools, Brendan Gregg, O’Reilly Velocity conference 2015 Santa Clara