我需要获得Sun Solaris 10和11上磁盘/驱动器的I/O速率。
有一个命令行工具"iostat“,它正好返回我需要的东西。但是这个输出是格式化的,而不是以一种干净的机器可读的方式。
除此之外,我不想从我需要这些信息的java程序中执行二进制文件。
在Linux中,有/proc/diskstats,它做得很好。但在Solaris上,这种机制似乎不被支持。
总的来说,我对Solaris没有多少线索。通过互联网的搜索没有给我一些关于如何获得磁盘i/o的提示(除了命令行工具,如iostat、sar、.(例如01/html/821-1451/spmonitor-4.html)
谢谢你的帮助!
发布于 2016-02-05 04:16:28
Solaris不使用/proc
进行统计。Solaris统计信息由核心统计工具通过对/dev/kstat
的ioctl()
调用提供。您可以使用命令查看它们,也可以运行kstat -l
来列出可用的统计信息。
要了解如何从Java直接访问kstats,请参阅以下内容:http://www.petertribble.co.uk/Solaris/jkstat.html
JKstat JKstat为Java应用程序提供了一个访问Solaris kstats的jni接口。
如果您想知道Solaris工具(如iostat
)是如何工作的,您可以在Illumos.org上浏览(现在是旧的) OpenSolaris存储库,也可以在truss
下运行命令来查看它的系统调用。
如果您真的想深入观察正在发生的一切以及它是如何在Solaris上发生的,请查看dtrace
。使用dtrace
,您不仅可以知道每个磁盘上执行了多少个IO操作,还可以从每个磁盘上获得详细信息,比如字节数和磁盘上写入/读取的位置。
https://stackoverflow.com/questions/35221996
复制相似问题