Code Monkey home page Code Monkey logo

perfspect's Introduction

PerfSpect · BuildLicense

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 wide
    • sudo ./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 terminated
    • sudo ./perf-collect --timeout 10 run for 10 seconds
    • sudo ./perf-collect --app "myapp.sh myparameter" runs for duration of another process

perf-postprocess: Calculates high level metrics from hardware events

  • ./perf-postprocess

Quick start (requires perf installed)

wget -qO- https://github.com/intel/PerfSpect/releases/latest/download/perfspect.tgz | tar xvz
cd perfspect
sudo ./perf-collect --timeout 10
./perf-postprocess

Deploy in Kubernetes

Modify the template deamonset.yml to deploy in kubernetes

basic_stats perfspect-demo1

Requirements

Packages:

  • perf - PerfSpect uses the Linux perf tool to collect PMU counters

Minimum supported kernels

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

Supported Operating Systems:

  • 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

Build from source

Requires recent python. On successful build, binaries will be created in dist folder

pip3 install -r requirements.txt
make

Caveats

  1. The tool can collect only the counters supported by underlying linux perf version.
  2. 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 with LC_ALL=C.UTF-8 LANG=C.UTF-8 ./perf-postprocess -r result.csv
  3. The html report creation is not yet supported for cid collection.

How to contribute

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.

perfspect's People

Contributors

karanrk avatar hilldani avatar harp-intel avatar ashrafmahgoub avatar faqeerurrehmanintel avatar hsane2001 avatar amblakem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.