Twitter开源高分辨率遥测工具Rezolus,轻松捕获系统性能异常瞬间

2019-08-21 赵一轩 开源中国
浏览

Twitter昨日宣布开源Rezolus,这是一种高分辨率遥测代理,旨在发现性能异常现象和利用率峰值,这些异常现象和峰值通常都太短暂,难以通过常规观察和系统指标来捕获。Rezolus有助于量化工作负载,提供数据以推进优化,并且已经用于诊断运行时的性能问题。Twitter已经在Rezolus上运行了一年多。

“Rezolus提供了一系列信号,以帮助我们理解细粒度的运行时行为。我们发现它对理解和优化性能特别有帮助”,Twitter工程师Brian Martin在博客文章中写道,“通过单一代理,我们可以从各种来源获得遥测。据我们所知,没有其他开源项目能够在单个软件包中展现如此全面的洞察力。”

根据Martin的说法,Rezolus诞生于对了解细粒度时间尺度上的系统性能的需求。在运行非常高吞吐量的综合基准测试时,Twitter工程师们有时会遇到短暂的性能异常,但现有的遥测技术采样率相对较低,因此未能反映出这些异常状况。

这是因为,根据采样定理,采样率必须至少是最短脉冲持续时间的两倍,以便准确地反映爆发的强度,而大多数遥测都会产生一个微小的时间序列。相比之下,Rezolus可以在更加精确的时间尺度上精确测量性能下降的情况。

Rezolus允许配置采样率,因此开发人员可以将分辨率与尖峰长度匹配,并且不会消耗过多的资源。在10Hz采样时,它能够反映出200毫秒或更长时间的连续突发,足以满足Twitter上的大多数服务。同时,在这一条件下它只占用不超过15% CPU和60MB内存。

可切换的插件采样器使Rezolus能够从各种来源收集遥测,包括来自Linux kernel源的计数器和仪表,以获得有关CPU使用率、网络利用率和磁盘利用率的遥测。这些采样器还可根据需要进行不同配置。

最后,Martin写道:“开源Rezolus标志着该项目的一个重要里程碑,我们希望Rezolus对Twitter之外的其他人也有用,并期待围绕它建立一个社区。”