Methodologies #
There are dozens of performance tools for Linux
- Packages: sysstat, procps, coreutils, …
- Commercial products Methodologies can provide guidance for choosing and using tools effectively, by giving you a starting point, a process, and an ending point in your diagnotics.
Problem Statement Method #
- What makes you think there is a performance problem?
- Has this system ever performed well?
- What has changed recently? (Software? Hardware? Load?)
- Can the performance degradation be expressed in terms of latency or run time?
- Does the problem affect other people or applications (or is it just you)?
- What is the environment? Software, hardware, instance types? Versions? Configuration?
Workload Characterization Method #
- Who is causing the load? PID, UID, IP addr, …
- Why is the load called? code path, stack trace
- What is the load? IOPS, throughput, type, r/w
- How is the load changing over time?
The USE Method #
For every resource, check:
- Utilization: Busy
- Saturation
- Errors