【问题标题】:Sun Solaris 10/11: get disk i/o rates in machine readable waySun Solaris 10/11:以机器可读方式获取磁盘 i/o 速率
【发布时间】:2016-05-15 07:16:27
【问题描述】:

我需要获取 Sun Solaris 10 和 11 上磁盘/驱动器的 I/O 速率。

有一个命令行工具“iostat”可以准确地返回我需要的东西。但是这个输出是格式化的,而不是以一种干净的机器可读的方式。
除此之外,我不想在需要此信息的 java 程序中执行二进制文件。

在 Linux 中有 /proc/diskstats 做得很好。但在 Solaris 上似乎不支持这种机制。

我实际上对 Solaris 并没有太多的了解。通过互联网搜索并没有给我一些关于如何获取磁盘 i/o 的提示(除了 iostat、sar 等命令行工具...(例如https://docs.oracle.com/cd/E23824_01/html/821-1451/spmonitor-4.html))

感谢您的帮助!

【问题讨论】:

    标签: monitoring solaris query-performance procfs iostat


    【解决方案1】:

    Solaris 不使用/proc 进行统计。 Solaris 统计数据由kernel statistic facility 通过ioctl() 调用/dev/kstat 提供。您可以使用kstat command 来查看它们,也可以运行kstat -l 来列出可用的统计信息。

    要了解如何直接从 Java 访问 kstats,请参阅:http://www.petertribble.co.uk/Solaris/jkstat.html:

    JKstat

    JKstat 提供了一个 jni 接口供 Java 应用程序访问 Solaris kstats。

    如果您想知道iostat 等Solaris 工具的工作原理,您可以浏览Illumos.org 的(现在较旧的)OpenSolaris 存储库,或者您可以在truss 下运行命令以查看它发出的系统调用.

    如果您真的想深入观察正在发生的一切以及它在 Solaris 上的发生方式,请查看dtrace。使用dtrace,您不仅可以知道每个磁盘上执行了多少 IO 操作,还可以从每个磁盘中获取详细信息,例如字节数以及在磁盘上写入/读取的位置。

    【讨论】:

    猜你喜欢
    • 2017-03-23
    • 2020-10-16
    • 2012-08-20
    • 2021-12-04
    • 2019-12-07
    • 2014-05-20
    • 2012-08-10
    • 1970-01-01
    • 2018-10-25
    相关资源
    最近更新 更多