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.
翻译:性能工程对于云原生架构已变得至关重要。该架构部署了多个服务,每个服务代表一组容器化进程的编排。OpenTelemetry在云原生行业中日益流行,用于观测软件行为,而Kieker则提供了监控和分析目标架构性能的必要工具。可观测性开销是性能工程的一个重要方面,MooBench旨在比较不同的可观测性框架,包括OpenTelemetry和Kieker。在本工作中,我们测量了Cloudprofiler的开销,这是一个用C++实现的性能分析器,用于测量原生进程和JVM进程。它通过将分析器进程置于目标进程外部,并利用缓冲区块和压缩线程将磁盘写入开销移出关键路径,从而最小化分析开销。使用MooBench测试表明,Cloudprofiler采用无损数据压缩算法ZSTD的缓冲ID处理器的平均执行时间为2.28微秒,比非缓冲非压缩处理器快6.15倍。