如何衡量在ubuntu上运行的java应用程序的I / O时间?

时间:2010-08-25 18:16:02

标签: java profiling io yourkit

我想收集应用程序等待I / O的时间。我在ubuntu / linux上运行这个java应用程序。我正在使用yourkit profiler。建议是否有其他用于测量I / O时间的分析工具。

3 个答案:

答案 0 :(得分:1)

Youtkit非常适合在您的应用中使用变焦显微镜。在这些情况下,通常还需要从外部查看宏观视图,并进行一些非常粗略的测量,以确定您是CPU绑定还是IO绑定。

如果您的应用程序以全空运行而另外“空”仅使用10%CPU(并且通过扩展大约90%等待IO),那么调查您在IO端可以执行的操作非常有意义你想增加吞吐量。另一方面,如果我们的应用程序受CPU限制,那么所有核心都运行超过90%,那么你将不会获得更多。命令top,iostat和vmstat可以给出这些粗略估计。

strace可以深入了解文件的打开和关闭次数,执行的读取操作等等。在这种情况下,还要学习使用grep或perl来筛选此工具生成的大量数据。

密切关注内存的使用效率并了解您的基础架构。如果你在vmstat中看到大量的块被换入和换出重调内存,直到它降到零或所有其他的努力相对无用。

您的问题不清楚您的重点是延迟,抖动,吞吐量......,但这些相对较快的粗略估计值有助于确定显微镜的显示位置。

答案 1 :(得分:1)

您可以使用RotateRight/ZoomLTProf。或者,如果您没有达到高精度,您可以使用 lsstack 获取10或20个堆栈样本,并查看I / O中的百分比,或者用Java执行相同的操作。

答案 2 :(得分:0)

使用strace观看系统I / O呼叫。请阅读man页面了解相关信息。