Skip to content

Latest commit

 

History

History
90 lines (60 loc) · 3.4 KB

File metadata and controls

90 lines (60 loc) · 3.4 KB

Installation and Usage

This document provides instructions on how to set up the eBPF library evaluation project, run the experiments, and process the results.

Table of Contents

Requirements & Installation

The project has been tested on a Linux server with Ubuntu 24.04 OS and kernel version 6.8.0-58-generic.

Running dependencies

The following dependencies are required to run the experiments.

Parsing dependencies

For parsing the collected information, the following dependencies are required:

  • Python (3.x)
  • Python libraries listed in parser/requirements.txt

Install the Python dependencies with:

pip install -r parser/requirements.txt

Usage

The scripts provided in the scripts/ and gnu_plots_parser/ directories allow you to:

  • Run the tools with various configurations
  • Generate output results into results/
  • Visualize experiment metrics

Running the experiments

To execute the experiments, use the run_multiple_tests.sh script located in the scripts/ directory as shown below:

./scripts/run_multiple_tests.sh <tool_type> <ebpf_library> <nr_iterations> <output_path>
  • <tool_type>: The type of tool to execute (e.g., syscount, rw-tracer, rw-tracer-all).
  • <ebpf_library>: The file extension for the eBPF library
    • py for BCC
    • bt for bpftrace
    • exe for libbpf and ebpf-go
    • rs for Aya
  • <nr_iterations>: The number of iterations to run the experiment (e.g., 3 runs).
  • <output_path>: The directory where the results will be saved.

Processing the results

To process the results (i.e., tool and benchmark outputs), run the parser/main.py script as follows:

python parser/main.py --vanilla <folder_to_vanilla_traces> --test <folder_to_test_workload_traces>
  • <folder_to_vanilla_traces>: Path to the vanilla trace results directory. This folder should contain subdirectories named after the machine IDs (e.g., 111, 112, 113...), each with workload-specific trace data.
  • <folder_to_test_workload_traces>: Path to the workload trace results directory. This folder should contain subdirectories named using the format <workload>#<tracer>, each containing runs of the test workload with the specified tracing tool.

Generating plots

To reproduce the figures (e.g., Figures 1, 2 and 3 in the paper), run the following command in the gnu_plots_parser/ directory:

./gen_ebpf_plots.sh <experiment>
  • <experiment>: The name of the experiment to generate plots for (e.g., fio-read, fio-write, fio-mixed).
  • The script will generate three plots (performance, fidelity, and resource usage) for the specified experiment and save them in the pdf/ and png/ directories.