Twitter 开源高分辨率遥测工具 Rezolus,轻松捕获系统性能异常瞬间
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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何看待优秀国产开源项目作者月薪却不到 5000 元?
今天朋友圈被下边这张图刷爆了,讲的似乎是一个优秀国产开源项目作者的才能没有得到很好的回报: 事件中的项目是 BiliBili 三年前开源的 flv.js,它是一个使用纯 JavaScript 编写的 FLV(HTML5 Flash Video)播放器,虽然是 FLV 播放器,但是完全没有使用到 Flash,这是它的一大特点,具体特性查看:https://www.oschina.net/p/flv-js。 flv.js 的工作原理是将 FLV 文件流转换为 ISO BMFF(Fragmented MP4)段,然后通过 Media Source Extensions API 将 mp4 段提供给 HTML5 <video> 元素。它使用 ECMAScript 6 编写而成,再由 Babel Compiler 编译成 ECMAScript 5,并与 Browserify 绑定。 项目十分优秀,它在 OSCHINA 上的关注度很高,目前也可以看到它在 GitHub 上的数据,star 达到 15k+、fork 有 2300+: 据说作者一人完成了该项目,并且在公司中推动其开源,但是...
- 下一篇
每日一博 | 如何参与一个顶级开源项目
前言 最近个人事情比较多(搬家、换工作、短暂休息)所以一直也没有顾得上博客更新,恰好最近收到一封邮件提醒了我。 也是时候写一篇文章来聊聊参与开源项目的事(最近也确实进入了笔荒期)。 ps:第一次收到这样的中秋节礼物,加上 Dubbo 社区的活跃及阿里的重视度,还在做 RPC 或微服务技术选型的朋友可以考虑 Dubbo。 参与开源 现在具体来聊聊参与开源的事; 日常几乎所有的开发者都会享受到开源项目所带来的便利甚至是收益,受限于环境早在十几年前甚至几年前开源活动一直都是有国外开发者主导。 但这几年国内互联网公司逐渐国际化扩大影响力也很大程度的提高了我们的开发水平,以 BAT 为首出现了许多优秀的开源项目。 现在甚至参与开源项目还能另辟蹊径的拿到大厂 offer,所以其实不少朋友都想参与其中,可能这事给人的第一感觉就不太容易,所以现在还卡在第一步。 具体步骤 以下是以我个人经验总结的几大步骤: 发现问题或自荐 feature 。 fork 源码。 本地开发、自测。 发起 pull request 。 等待社区 Code Review 。 跟进社区意见调整代码。 审核通过,合并进 maste...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度