Evaluating the Overhead of the Performance Profiler Cloudprofiler With MooBench

Shinhyung Yang,David Georg Reichelt,Wilhelm Hasselbring
2024-11-26
Abstract:Performance engineering has become crucial for the cloud-native architecture. This architecture deploys multiple services, with each service representing an orchestration of containerized processes. OpenTelemetry is growing popular in the cloud-native industry for observing the software's behaviour, and Kieker provides the necessary tools to monitor and analyze the performance of target architectures. Observability overhead is an important aspect of performance engineering and MooBench is designed to compare different observability frameworks, including OpenTelemetry and Kieker. In this work, we measure the overhead of Cloudprofiler, a performance profiler implemented in C++ to measure native and JVM processes. It minimizes the profiling overhead by locating the profiler process outside the target process and moving the disk writing overhead off the critical path with buffer blocks and compression threads. Using MooBench, Cloudprofiler's buffered ID handler with the Zstandard lossless data compression ZSTD showed an average execution time of 2.28 microseconds. It is 6.15 times faster than the non-buffered and non-compression handler.
Distributed, Parallel, and Cluster Computing,Software Engineering
What problem does this paper attempt to address?
The main problem that this paper attempts to solve is to evaluate the performance overhead of performance analysis tools (especially Cloudprofiler) in cloud - native architectures. Specifically, the author hopes to quantify the performance overhead of Cloudprofiler by using the MooBench benchmarking framework and compare it with other observability frameworks (such as Kieker and OpenTelemetry). ### Main problems 1. **Performance overhead evaluation**: In cloud - native applications, the introduction of performance monitoring and observability tools may cause additional overhead to the system performance. This paper aims to evaluate the specific overhead of Cloudprofiler, a performance analysis tool. 2. **Optimization strategy verification**: Cloudprofiler reduces performance overhead by removing log - writing operations from the critical path and using buffers and compression threads. The paper verifies the effectiveness of these optimization strategies. 3. **Comparison with existing tools**: Through the MooBench framework, the paper not only evaluates the performance overhead of Cloudprofiler but also compares it with other commonly - used observability frameworks (such as Kieker and OpenTelemetry) to determine its relative advantages and disadvantages. ### Specific objectives - **Quantify the performance overhead of Cloudprofiler**: Measure the execution time, the number of garbage collections, and the heap memory usage under different configurations through experiments. - **Evaluate the effects of optimization measures**: Verify whether optimization measures such as buffers and compression threads significantly reduce the performance overhead. - **Provide benchmark data**: Provide reliable performance benchmark data for subsequent research and practical applications, helping developers choose appropriate observability tools. ### Method overview - **Experimental platform**: Use the MooBench benchmarking framework to conduct experiments on a physical server equipped with an Intel Xeon E5 - 2650 CPU and 64 GiB RAM. - **Experimental setup**: Configure five different Cloudprofiler handlers, including null handler, non - buffered ID handler, ID handler with buffering and binary encoding, buffered ID handler with Zstandard compression, and buffered ID handler with LZO1X compression. - **Result analysis**: Through multiple experiments, collect and analyze data on execution time, the number of garbage collections, and heap memory usage, and use the coefficient of variation (CV) to evaluate the fluctuation of heap memory usage. Through these methods, the paper provides a detailed evaluation of the performance overhead of Cloudprofiler and provides valuable references for the performance optimization of cloud - native applications.