收录自:http://blog.csdn.net/qsc0624/article/details/51258955
--------------------------
这篇文章介绍怎么样使用Dr.Elephant来进行任务分析。
Dr.Elephant启动后,首页如下:
首页的灰色部分包含了最新的集群信息。这部分列出了最近24小时分析过的任务数量、可以进行优化的任务数量以及亟待优化的任务数量。
这一部分列出了最近一段时间分析的任务。
首页点击“Search”进入搜索页面,在这个页面,我们可以通过不同的搜索项来搜索任务:
这些所有的搜索条件都可以组合使用。例如,我们可以指定“用户名”为“user1”,同时,指定“待优化等级”为“critical(危急)”,点击搜索,会返回所有的user1提交的任务中待优化等级为“critical”的任务。
在UI中点击一个任务,可以进入任务详情页面。
当一个任务被Dr.Elephant分析时,Dr.Elephant会运行所有的启发式算法来分析这个任务。每个启发式算法都会对该任务计算出一个待优化等级,这个等级可能会是“无(none)”、“中等(moderate)”、“严重(severe)”或者“危急(critical)”。在每个任务的详细分析页面,都会展示它的待优化等级以及其他分析结果。如果任务的待优化等级不是“无(none)”时,表明某些启发式算法的诊断结果认为这个任务需要优化,同时也会提供相应的链接(帮助页面)来阐述该启发式算法提出的优化建议。任务的开发者可以通过这个链接来帮助自己优化任务。
在Dr.Elephant UI的首页,点击Compare进入任务比较页面。在任务比较页面,我们可以在任务级别比较任意两次的任务流执行情况。当我们比较两次任务流的执行时,相同的任务会做出比较并在顶部展示。其他的不同的任务,会按照任务流的顺序依次在下面展示。
在历史任务页面,展示了每个特定任务近期所有执行情况的比较。
我们可以在历史任务页面的搜索框中输入任务的ID或者URL来搜索特定的任务。点击搜索,就会得到该任务的历史执行情况的展示。在前面提到的任务详情页面中,也有链接可以跳转到该任务的历史执行情况页面。这个页面中展示的折线图代表了该任务在历史上每次执行性能的一个打分。
执行性能打分图是一个折线图。X轴代表时间,Y轴代表分数。当我们将鼠标停留在折线图中的某个点上时,会看到有弹框弹出。弹框中列出了该任务在本次执行中造成性能问题的Top 3的阶段。执行性能的分数是通过一个简单的公式计算出来的,越低的分数表明该任务执行性能越好。
在性能打分折线图的下方,可以看到该任务在近期每次执行的扁平状展示。第一列是每次执行的时间,点击每个时间,都能跳转到任务在调度器中的执行详情页面。接下来的每一列都代表了任务执行的一个阶段。在图表中任务执行的每一阶段,都包含了若干种颜色的圆点。不同的颜色代表了启发式算法分析产生的待优化等级。当我们将鼠标停留在某个任意颜色的圆点上时,会弹出一个弹框展示该启发式算法对该任务的若干优化建议。
在历史任务流页面,展示了每个特定任务流近期所有执行情况的比较。
我们可以在历史任务流页面的搜索框中输入任务流的ID或者URL来搜索特定的任务。点击搜索,就会得到该任务流的历史执行情况的展示。
执行性能打分图是一个折线图。X轴代表时间,Y轴代表分数。当我们将鼠标停留在折线图中的某个点上时,会看到有弹框弹出。弹框中列出了该任务流在本次执行中造成性能问题的Top 3的阶段。执行性能的分数是通过一个简单的公式计算出来的,越低的分数表明该任务流执行性能越好。
在性能打分折线图的下方,可以看到该任务流在近期每次执行的扁平状展示。第一列是每次执行的时间,点击每个时间,都能跳转到任务流在调度器中的执行详情页面。接下来的每一列都代表了任务流执行中的一个任务。在图表中的每个任务阶段,都包含了若干种颜色的圆点。当我们将鼠标停留在某个任意颜色的圆点上时,会弹出一个弹框展示所有的启发式算法,以及这些算法对该任务的待优化等级的分析结果。
在Dr.Elephant UI首页点击“Help”可以跳转到帮助页面。还可以通过其他方式跳转到帮助页面,比如通过点击UI中任务详情页的“explain”链接(当启发式算法诊断结果为moderate、severe或者critical时出现这个链接)。在帮助页面,可以看到所有的启发式算法的介绍,以及这些启发式算法给出的优化建议。点击某个特定的启发式算法,可以看到该启发式算法得出的详细优化建议。上面图片中,展示了Mapper memory启发式算法给出的优化建议。
待优化等级代表了该任务的性能,表明了该任务在性能上需要优化的迫切程度。我们通过参数可以配置每个启发式算法的一些阈值,启发式算法给每个任务的诊断分析,都会得出一个待优化等级。待优化等级共有5个,下面按照待优化的迫切性降序排序给出:CRITICAL > SEVERE > MODERATE > LOW > NONE
Severity |
Color |
Description |
CRITICAL |
|
这个任务迫切需要被优化 |
SEVERE |
|
这个任务有很大的可优化的空间 |
MODERATE |
|
这个任务有进一步的可优化空间 |
LOW |
|
这个任务有很小的可优化的空间 |
NONE |
|
这个任务很安全,没有可优化空间 |
作者简介:屈世超,现专注于大数据。曾任职小米科技公司服务端后台开发工程师,现担任EverString数据平台组高级开发工程师。