【发布时间】:2011-08-10 23:16:17
【问题描述】:
我有一个应用程序在统一的 Java 进程网格上运行(可能在不同的物理机器上)。我想从这个应用程序的一次运行中收集 cpu 使用统计信息。我浏览了分析工具,寻找自动收集数据的选项,但在 netbeans、tptp、jvisualvm、yourkit 等中找不到任何工具。
也许我看错了?
我的想法是:
- 使用允许它们转储分析信息的一些特殊设置在网格上运行进程
- 像往常一样运行我的应用程序 - 它会将任务推送到网格,进程将执行任务并发布分析信息
- 使用一些工具来收集和分析分析结果
但我找不到任何与此类似的东西。
有什么想法、经验、建议吗?
谢谢!
【问题讨论】:
-
“收集”有点含糊。对于在多个节点上运行的每个方法 A,您希望在所有节点上累积方法 A 的 CPU 吗?或者您想查看每个节点 1..k 的 A(N1)、A(N2)、A(Nk) 的时间?您想要每个节点的某种调用图吗?所有节点的一些联合调用图(如何定义)?
-
事实是我不确定该方法。实际上,我的网格有点异构,这增加了问题。但我希望使用 map-reduce 之类的东西的人会面临同样的问题?我的目标是了解在网格上需要 5 分钟才能完成的 100 个计算小时是如何分布在各个网格节点上实际发生的调用之间的。
-
这些节点是否都运行相同的代码,并且您正在做一些数据并行的事情?还是计算是异构的?
-
所有节点都运行相同的代码,因此从计算上讲,网格是同质的。
标签: java profiling distributed