什么DTrace脚本使得在Solaris上测试和分析Java程序是值得的

时间:2011-02-27 12:49:00

标签: java solaris dtrace

我发现DTrace很有趣,但是我个人未能看到一个用例,这些用例允许我获取无论如何不使用DTrace而无法获得的信息。

因此,我想听听我忽略了什么。我可以在我的vmware OpenIndiana build 148上使用DTrace做什么,这可以在创建独立应用程序和Java EE Web应用程序(大多数使用套接字与传统后端进行大量通信)时发挥作用?

非常欢迎非平凡的Dtrace脚本。

1 个答案:

答案 0 :(得分:6)

我对DTrace有一些很好的经历。

我有一个客户端在运行24x7的生产服务器上运行我们的Java代码。我们在应用程序中遇到了一些性能问题。为了连接分析器,无法停止JVM。此外,在相同负载下,我们的实验室中没有这种行为。

我们解决了使用DTrace与JVM相关的探针,因为我可以将它连接到正在运行的JVM和引入的开销是最小的(一个的Netra T2000 SPARC机器上的1.3%)。

问题

该方法的奖金是所有调试经由一个拨号(33kbps)线到客户的实验室完成。使用此约束运行任何其他探查器/调试器几乎是不可能的(JDWP对于此带宽非常冗长)。使用我的DTrace脚本,我只过滤了它对我有趣的内容。

有些提示,请参阅: http://java.dzone.com/articles/java-profiling-dtrace?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone

http://download.oracle.com/javase/6/docs/technotes/guides/vm/dtrace.html

我已经调整了这些脚本 http://blogs.oracle.com/ahl/date/20050418#dtracing_java

另一大优点是可以轻松用于创建自定义统计信息的聚合值。

但是,如果您有适当的条件,使用其他工具可以更轻松地完成所有工作。 DTrace非常强大,但它针对更多的裸机条件(也许DLight项目会有所帮助)。