授权协议: Apache 2.0
开发语言: Java
操作系统: 跨平台
开发厂商: Uber
收录时间: 2018-08-21
提 交 者: 王练

JVM Profiler 是 Uber Engineering 团队开源的一个分布式探查器,用于收集性能和资源使用率指标为进一步分析提供服务。尽管它是为 Spark 应用而构建的, 但它的通用实现使其适用于任何基于 JVM 的服务或应用。


JVM Profiler 由三项主要功能组成, 它使收集性能和资源使用率指标变得更容易, 然后可以将这些指标 (如 Apache Kafka) 提供给其他系统进行进一步分析:

  • 代理功能 ( java agent ) : 支持用户以分布式的方式收集各种指标 (例如如 CPU/内存利用率) ,用于 JVM 进程的堆栈跟踪。

  • 高级分析功能(Advanced profiling capabilities): 支持跟踪任意 Java 方法和用户代码中的参数, 而不进行任何实际的代码更改。此功能可用于跟踪 Spark 应用的 HDFS NameNode RPC 调用延迟, 并标识慢速方法调用。它还可以跟踪每个 Spark 应用读取或写入的 HDFS 文件路径, 用以识别热文件后进一步优化。

  • 数据分析报告( Data analytics reporting ): 使用 JVM Profile 可以将指标数据推送给 Kafka topics 和 Apache Hive tables , 提高数据分析的速度和灵活性。

典型用例

JVM Profiler 支持各种用例, 最典型的是能够检测任意 Java 代码。基于简单的配置, JVM Profiler 就可以附加到 Spark 应用中的每个执行者(executor)收集 Java 方法运行时度量。下面, 我们对其中的一些用例进行讨论:

  • Right-size executor : JVM Profiler 中的内存度量支持跟踪每个执行者的实际内存使用情况。借此 可以在 Spark 应用中 ”executor-memory” 设置最优参数。

  • 监视 HDFS NameNode RPC 延迟: 例如在 Spark 应用中对类 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB 的方法进行了分析并确定 NameNode 调用的延迟。Uber 每天都要监控5万多个 Spark 应用, 其中有数以亿计的这种 RPC 调用。

  • 监视驱动程序丢弃的事件: 例如监视 org.apache.spark.scheduler.LiveListenerBus.onDropEvent, 跟踪 Spark 驱动程序事件队列太长、队列删除事件。

  • 跟踪数据沿袭: 例如分析 Java 方法上的文件路径参数 ( org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations , org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock ) , 可以跟踪哪些文件是由 Spark 应用读取和写入的。

 介绍来源:RiboseYim

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Uber JVM Profiler 的相关资讯

还没有任何资讯

Uber JVM Profiler 的相关博客

Uber JVM Profiler实战

背景 日常工作经常需要监控一些java进程的内存、cpu资源使用情况,也就是jmx中的信息。一般的java应用都有暴露jmx的机制,然后...

Uber 开源分布式追踪工具:JVM Profiler

《JVM Profiler: An Open Source Tool for Tracing Distributed JVM Applications at Scale 》 Apache Spark 计算框架已经被广...

java profiler

几款java性能分析器的使用: hprof 这是一个基于命令行的调试工具,基于JVMTI实现,可用于cpu使用分析,堆分配统计和竞争监视器...

JVM性能分析神器async-profiler - 玩转JVM

async-profiler可以跟踪以下类型的事件: CPU性能分析 硬件和软件性能计数器,比如缓存遗漏、分支遗漏、页面错误、上下文切换...

Profiler是唯一一款获过奖的Java剖析器

Profiler是唯一一款获过奖的Java剖析器。JProfiler直观的用户界面能够帮助你找到性能瓶颈,并指明你的内存漏洞和解决线程问题。...

JVM CPU Profiler技术原理及源码深度解析

研发人员在遇到线上报警或需要优化系统性能时,常常需要分析程序运行行为和性能瓶颈。Profiling技术是一种在应用运行时收集程...

JVM CPU Profiler技术原理及源码深度解析

研发人员在遇到线上报警或需要优化系统性能时,常常需要分析程序运行行为和性能瓶颈。Profiling技术是一种在应用运行时收集程...

JVM CPU Profiler技术原理及源码深度解析

研发人员在遇到线上报警或需要优化系统性能时,常常需要分析程序运行行为和性能瓶颈。Profiling技术是一种在应用运行时收集程...

java -d . **.java 与 java **.java 的区别

如何在命令行模式下运行带包的java文件 https://blog.csdn.net/lytor/article/details/17048361 javac,使用"-d ."与省略-d的...

Uber JVM Profiler 的相关问答

还没有任何问答,马上提问

评论 (1)

加载中
打分: 力荐
Uber 每天都要监控5万多个 Spark 应用, 其中有数以亿计的这种 RPC 调用。太不可思议了,对于我来说一个Spark应用就已经深似海了!
2018/08/22 09:08
回复
举报
更多评论
1 评论
60 收藏
分享
返回顶部
顶部