Quick Start | Output | Requirements | Build from source | Caveats | How to contribute
PerfSpect is a system performance characterization tool built on top of linux perf. It contains two parts
perf-collect: Collects harware events
- Collection mode:
sudo ./perf-collect
default system widesudo ./perf-collect --socket
sudo ./perf-collect --thread
sudo ./perf-collect --pid <process-id>
sudo ./perf-collect --cid
by default, selects the 5 containers using the most CPU at start of perf-collect. To monitor specific containers provide up to 5 comma separated cids i.e. <cid_1>,<cid_2>
- Duration:
sudo ./perf-collect
default run until terminatedsudo ./perf-collect --timeout 10
run for 10 secondssudo ./perf-collect --app "myapp.sh myparameter"
runs for duration of another process
perf-postprocess: Calculates high level metrics from hardware events
./perf-postprocess
wget -qO- https://github.com/intel/PerfSpect/releases/latest/download/perfspect.tgz | tar xvz
cd perfspect
sudo ./perf-collect --timeout 10
./perf-postprocess
perf-collect outputs:
perfstat.csv
: raw event counts with system metadata
perf-postprocess outputs:
metric_out.sys.average.csv
: average metricsmetric_out.sys.csv
: metric values at every 5 second intervalmetric_out.html
: html view of a few select metrics
Modify the template deamonset.yml to deploy in kubernetes
- perf - PerfSpect uses the Linux perf tool to collect PMU counters
Xeon Generation | centos 7+ | ubuntu 16.04+ |
---|---|---|
Broadwell | 3.10 | 4.15 |
Skylake | 3.10 | 4.15 |
Cascadelake | 3.10 | 4.15 |
Icelake | 3.10 | 4.15 |
Sapphire Rapids | 5.12 | 5.12 |
- Ubuntu 16.04 and newer
- centos 7 and newer
- Amazon Linux 2
- RHEL 9
- Debian 11
Note: PerfSpect may work on other Linux distributions, but has not been thoroughly tested
Requires recent python. On successful build, binaries will be created in dist
folder
pip3 install -r requirements.txt
make
- The tool can collect only the counters supported by underlying linux perf version.
Create a pull request on github.com/intel/PerfSpect with your patch. Please make sure your patch is building without errors. A maintainer will contact you if there are questions or concerns.