- Python 3;
- jq (check here the project);
- Perf:
sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`Next, we document the project structure.
- run-base: provides a skeleton of how your experiments should be structured. The file is well documented and provides freedom to fully customize the experiments;
- perf-capture: profiles the application using
perf record, convert the file to TXT usingperf script, and convert the file to CSV, reducing storage space required;
Usage: ./perf-capture.sh [-n experiment-name] [-r runs] [-f frequency] [-o output-directory] [-c command]
-n, --name Experiment name.
-r, --runs Number of times experiment will run.
-f, --frequency Number of samples to capture per second. Default: 997 samples/second.
-o, --output Directory where perf logs will be saved.
-c, --command Command that triggers the experiment.
Example: ./perf-capture.sh --name "Experiment XX" --runs 5 --frequency 997 --output ./output/experiment-xx -c "sleep 10"- events.txt: defines which events
perf recordwill monitor. We can see the events available on your architecture usingperf list; - parser/perf_script2csv.py: parse data from TXT to CSV;
python3 parser/perf_script2csv.py --input data.txtYou can see an example of the TXT file here and an example of CSV file here.
- parser/parser.py: creates the JSON file to be uploaded in the VisPerf visualization dashboard;
python3 parser/parser.py --input config.json --output experiments.jsonYou can see an example of the config.json file here and an example of the experiments.json file here.