Sun Solaris 10/11:以机器可读的方式获取磁盘 i/o 速率
Sun Solaris 10/11: get disk i/o rates in machine readable way
我需要获取 Sun Solaris 10 和 11 上 disks/drives 的 I/O 速率。
命令行工具 "iostat" 正是我所需要的 returns。但是这个输出是格式化的,而不是以一种干净的机器可读的方式。
除此之外,我不想从需要此信息的 java 程序中执行二进制文件。
在 Linux 中有 /proc/diskstats 做得很好。但是在Solaris上似乎不支持这种机制。
我实际上对 Solaris 总体上没有太多了解。通过互联网搜索并没有给我一些关于如何获取磁盘的提示 i/o(除了 iostat、sar 等命令行工具,...(例如 https://docs.oracle.com/cd/E23824_01/html/821-1451/spmonitor-4.html))
感谢您的帮助!
Solaris 不使用 /proc
进行统计。 Solaris 统计信息由 kernel statistic facility via ioctl()
calls on /dev/kstat
. You can use the kstat
command 提供以查看它们,您可以 运行 kstat -l
列出可用的统计信息。
要了解如何直接从 Java 访问 kstats,请参阅:http://www.petertribble.co.uk/Solaris/jkstat.html:
JKstat
JKstat provides a jni interface for Java applications to access
Solaris kstats.
如果您想了解 iostat
等 Solaris 工具的工作原理,您可以浏览位于 Illumos.org, or you can run the command under truss
的(现在很旧的)OpenSolaris 存储库,查看它进行了哪些系统调用。
如果您真的想深入观察 Solaris 上正在发生的一切以及它是如何发生的,请查看 dtrace
。使用 dtrace
你不仅可以知道每个磁盘上完成了多少 IO 操作,你还可以从每个操作中获取详细信息,例如字节数和它在磁盘上的写入位置 to/read .
我需要获取 Sun Solaris 10 和 11 上 disks/drives 的 I/O 速率。
命令行工具 "iostat" 正是我所需要的 returns。但是这个输出是格式化的,而不是以一种干净的机器可读的方式。
除此之外,我不想从需要此信息的 java 程序中执行二进制文件。
在 Linux 中有 /proc/diskstats 做得很好。但是在Solaris上似乎不支持这种机制。
我实际上对 Solaris 总体上没有太多了解。通过互联网搜索并没有给我一些关于如何获取磁盘的提示 i/o(除了 iostat、sar 等命令行工具,...(例如 https://docs.oracle.com/cd/E23824_01/html/821-1451/spmonitor-4.html))
感谢您的帮助!
Solaris 不使用 /proc
进行统计。 Solaris 统计信息由 kernel statistic facility via ioctl()
calls on /dev/kstat
. You can use the kstat
command 提供以查看它们,您可以 运行 kstat -l
列出可用的统计信息。
要了解如何直接从 Java 访问 kstats,请参阅:http://www.petertribble.co.uk/Solaris/jkstat.html:
JKstat
JKstat provides a jni interface for Java applications to access Solaris kstats.
如果您想了解 iostat
等 Solaris 工具的工作原理,您可以浏览位于 Illumos.org, or you can run the command under truss
的(现在很旧的)OpenSolaris 存储库,查看它进行了哪些系统调用。
如果您真的想深入观察 Solaris 上正在发生的一切以及它是如何发生的,请查看 dtrace
。使用 dtrace
你不仅可以知道每个磁盘上完成了多少 IO 操作,你还可以从每个操作中获取详细信息,例如字节数和它在磁盘上的写入位置 to/read .