This repository contains performance and kernel lock access data for a set of workloads across four platforms: host, runc, runsc (in KVM mode), and fc (Firecracker).
We collect this data by disabling hyperthreading and enabling CAT (Cache Allocation Technology). Each workload instance is pinned to a core with a separate Class of Service (CoS) to minimize interference from other sources, such as shared resource allocation. Our goal is to study and analyze system-level interference that arises from shared access to kernel objects.
For each workload, the performance data represents the performance of a worker under stress induced by launching trashers (stressors targeting specific subsystems). The goal is to analyze performance degradation under stress compared to a baseline.
This data is located under the /perf directory for each workload.
- Baseline: Measured by running the workload alone for 10 minutes and averaging the result.
- Interference: Measured by observing the
worker's performance while one or moretrashersare active.
Lock access data is collected by running two instances of the same or different workload for a fixed duration, using an eBPF-based dynamic tracer to record kernel lock activity.
We collect both performance and lock access data for the following workloads:
All data is located under the ubuntu22 directory. Each platform has its own subdirectory under this folder. Workload-specific details will be added soon.
Note:
ubuntu20contains older data collected on Ubuntu 20.04, which is not used in the current analysis.
TBA – guidelines or sample usage scripts can be added here.