Detection of Performance Changes in MooBench Results Using Nyrkiö on GitHub Actions
Shinhyung Yang, David Georg Reichelt, Henrik Ingo, Wilhelm Hasselbring
TL;DR
The paper tackles the problem of detecting performance changes in MooBench measurements within GitHub Actions CI workflows. It proposes integrating the Nyrkiö change-detection service, which uses the E-Divisive Means algorithm, into the MooBench GitHub workflow to automatically identify regression points across benchmark runs. The authors demonstrate a major regression linked to a Linux kernel version change, reproduce the result on both GitHub-hosted and self-hosted runners, and validate that the regression is not caused by software changes. This work provides a practical, reproducible approach for CI/CD-based performance monitoring and regression detection, with potential to extend to other benchmarking scenarios and tracing frameworks.
Abstract
In GitHub with its 518 million hosted projects, performance changes within these projects are highly relevant to the project's users. Although performance measurement is supported by GitHub CI/CD, performance change detection is a challenging topic. In this paper, we demonstrate how we incorporated Nyrkiö to MooBench. Prior to this work, Moobench continuously ran on GitHub virtual machines, measuring overhead of tracing agents, but without change detection. By adding the upload of the measurements to the Nyrkiö change detection service, we made it possible to detect performance changes. We identified one major performance regression and examined the performance change in depth. We report that (1) it is reproducible with GitHub actions, and (2) the performance regression is caused by a Linux Kernel version change.
