【问题标题】:Looking for kstat equivalents in Linux在 Linux 中寻找 kstat 等价物
【发布时间】:2011-03-17 15:50:36
【问题描述】:

我有一个程序可以在我们的 Solaris 系统上收集各种 kstat 信息,现在我们已经将 Linux 引入我们的数据中心,我想为 Linux 做同样的事情。

但是,我在为许多 kstat 找到等效项时遇到了麻烦。我想知道是否有模仿 Linux 环境的 kstats 的库或实用程序。即使是部分实现也会有所帮助。

截至目前,我一直在解析 /proc 中的文件,但找到正确的信息时已命中或未命中。例如,kstat 有以下数据:

unix::vminfo 交换分配 交换可用 swap_free swap_resv

在 Linux 中,您有条目“SwapTotal”和“SwapFree”,但 a)看来swap_free实际上对应于“SwapTotal”,而swap_avail对应于“SwapFree” b) 我现在找不到 swap_avail 的值(可能是 SwapTotal 减去 SwapFree?)现在 swap_resv

有什么想法吗?

【问题讨论】:

    标签: linux performance statistics solaris kstat


    【解决方案1】:

    我不知道 Linux kstat 实现,但无论如何,您首先在这里遇到了术语问题。

    您引用的 Solaris kstats 交换统计信息使用“交换”来表示整个虚拟内存,即交换区域加上大部分 RAM。

    另一方面,Linux SwapTotal 和 SwapFree 统计仅与交换区域(即磁盘上)有关。

    另一个问题是 Linux 过度使用内存分配,因此内存预留计数器可能不会被维护并且无论如何也不会有用。

    【讨论】:

      【解决方案2】:

      在 LWN 上有这篇 meminfo documentation take 2 文章描述了 /proc/meminfo 中的所有字段,并对 SwapTotal 和 SwapFree 进行了以下说明:

      SwapTotal: total amount of swap space available
       SwapFree: Memory which has been evicted from RAM, and is temporarily
                    on the disk
      

      http://kerneltrap.org/node/4097也有一些讨论。

      【讨论】:

      • 恐怕您选择的旧文章的 SwapFree 定义完全错误。它所描述的将被命名为 SwapUsed。 SwapTotal 也令人怀疑。它代表可用和已使用的交换空间。
      • 感谢您为此添加注释。
      【解决方案3】:

      Perl 版本:

      https://github.com/zfsonlinux/linux-kstat

      "这是 Sun::Solaris::Kstat Perl 模块的实现 对于 Linux ZFS。它的行为应该与 Solaris 版本相同。”

      Ruby 版本:

      https://www.rubydoc.info/gems/linux-kstat/Linux/Kstat

      “Kstat 类封装了从 /proc/stat 派生的 Linux 内核统计信息。”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-08
        • 2011-01-08
        相关资源
        最近更新 更多