Quick Start | 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 <container-id1>;<container-id2>
- 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
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.
- If you run into locale issues -
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 4519: ordinal not in range(128)
, more than likely the locales needs to be set appropriately. You could also try running post-process step withLC_ALL=C.UTF-8 LANG=C.UTF-8 ./perf-postprocess -r result.csv
- The html report creation is not yet supported for cid collection.
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.