All-in-one performance analysis with standard Linux tools
Programming Snapshot – Performance Analysis
© Lead Image © Maksym Yemelyanov, 123RF.com
Experienced sys admins always use the same commands to analyze problematic system loads on Linux. Mike Schilli bundles them into a handy Go tool that shows all the results at a glance.
When the performance analysis book by Brendan Gregg [1], which I had long been waiting for, appeared recently, I devoured it greedily. I even had access to a prerelease so that in January I was able to give the readers of Linux Magazine some tips on the kernel probes for throughput measurement by means of the Berkeley Packet Filters [2]. Performance guru Gregg also explains at the beginning of the book how he often uses classic command-line tools to find out what is causing a struggling server to suffer.
10 Commands
He starts off with a list of 10 command-line utilities (Listing 1) [3], which every Unix system understands, checks everyday things – such as how long the system has been running without rebooting (uptime) or whether there is anything noticeable in the system log (dmesg). The vmstat command looks for processes waiting for their turn on a CPU. It also checks if all RAM is occupied and the system is wildly swapping. Similarly, free shows the available memory.
Entering pidstat visualizes how processes are distributed on the system's CPUs; iostat determines whether the data exchange with the hard disk is the bottleneck. The utilization of individual CPUs is illustrated by mpstat, which also shows whether a single process is permanently blocking an entire CPU. The sar commands collect statistics about the network activity on a regular basis, including the throughput data. The best known of the tools, top, gives an overview of RAM usage and running processes, but according to Gregg, should be called last.
[...]
Buy this article as PDF
(incl. VAT)
