我想收集应用程序等待I / O的时间。我在ubuntu / linux上运行这个java应用程序。我正在使用yourkit profiler。建议是否有其他用于测量I / O时间的分析工具。
答案 0 :(得分:1)
Youtkit非常适合在您的应用中使用变焦显微镜。在这些情况下,通常还需要从外部查看宏观视图,并进行一些非常粗略的测量,以确定您是CPU绑定还是IO绑定。
如果您的应用程序以全空运行而另外“空”仅使用10%CPU(并且通过扩展大约90%等待IO),那么调查您在IO端可以执行的操作非常有意义你想增加吞吐量。另一方面,如果我们的应用程序受CPU限制,那么所有核心都运行超过90%,那么你将不会获得更多。命令top,iostat和vmstat可以给出这些粗略估计。
strace可以深入了解文件的打开和关闭次数,执行的读取操作等等。在这种情况下,还要学习使用grep或perl来筛选此工具生成的大量数据。
密切关注内存的使用效率并了解您的基础架构。如果你在vmstat中看到大量的块被换入和换出重调内存,直到它降到零或所有其他的努力相对无用。
您的问题不清楚您的重点是延迟,抖动,吞吐量......,但这些相对较快的粗略估计值有助于确定显微镜的显示位置。
答案 1 :(得分:1)
您可以使用RotateRight/Zoom或LTProf。或者,如果您没有达到高精度,您可以使用 lsstack 获取10或20个堆栈样本,并查看I / O中的百分比,或者用Java执行相同的操作。
答案 2 :(得分:0)
使用strace
观看系统I / O呼叫。请阅读man
页面了解相关信息。