Uber开源分布式性能分析器JVM Profiler
极客时间编辑部
讲述:杜力大小:997.01K时长:02:08
最近,Uber 开源了一个分布式性能分析器,名为 JVM Profiler。Uber 搭建这一工具的目的,是解决他们在使用 Apache Spark 框架过程中,出现的资源配置问题。
Apache Spark 是一个非常流行的框架,主要用于处理大型数据流问题,这正是 Uber 所需要的。可以说,JVM Profiler 是为 Spark 而建的,但是它也可以被应用于任何基于 JVM 的服务或应用。
据了解,Uber 的需求是在成千上万应用的海量进程中操作相关性矩阵(元数据信息)。在 Uber 的分布式环境下,同一台服务器中会运行很多的 Spark 应用,而每个应用都有数千个执行器。
他们现有的工具只能监控服务器级别的矩阵(元数据信息),而无法对单一应用进行监控。所以需要一个解决方案,使得对每个进程都可以收集其相关性矩阵(元数据信息),并对每个应用进行跨进程的相关性分析。
据介绍,JVM Profiler 有三个主要特性,可以简化对性能和资源使用状况矩阵(元数据信息)的收集,然后将收集到的信息发布给其他系统(如 Apache Kafka)。其三个特性包括:
Java Agent:可以以分布式的形式在 JVM 进程上收集矩阵(元数据信息);
高级性能分析能力:可以跟踪任意方法和参数,而无需对代码进行任何修改;
数据分析报告:可以通过 Kafka topic 和 Apache Hive 更快地进行数据分析。
另外,虽然 JVM Profiler 的设计很简单,但是它的扩展性很强。用户可以自行添加其他的 profiler 实现,以收集更多的 Metrics。这样,用户就可以添加自己的 Metrics 发布报告。
目前,Uber 已经在 Spark 应用上使用了 JVM Profiler,并发现这样可以在每个执行器上节约 2GB 的内存的分配,内存由原先的 7GB 降到了 5GB。仅仅在这一个应用上,JVM Profiler 就可以为 Uber 节约 2TB 的内存。

公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论