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 之外的其他人也有用,并期待围绕它建立一个社区。”
博客原文:https://blog.twitter.com/engineering/en_us/topics/open-source/2019/introducing-rezolus.html
猜你喜欢: