【问题标题】:Linux: starttime field in /proc/[pid]/stat on earth use HZ(jiffies) or USER_HZ(_SC_CLK_TCK)Linux:地球上 /proc/[pid]/stat 中的 starttime 字段使用 HZ(jiffies) 或 USER_HZ(_SC_CLK_TCK)
【发布时间】:2013-12-14 15:13:38
【问题描述】:

我不想在 Linux 上测量该进程之外的进程的执行持续时间。我发现 /proc/[pid]/state 有一个名为 starttime 的字段,在手册页上描述为“系统启动后进程启动的时间”。

另外,我发现 /proc/uptime 提供了自系统启动以来经过的时间 ET(以秒为单位)。理论上我可以从这两个文件中获取运行时间 运行时间 = ET - 开始时间 /(每秒 jiffies)。

至于 jiffies,我认为它指的是内核的 CONFIG_HZ(在 ubuntu 12.04 上为 250)而不是 USER_HZ(在 ubuntu 12.04 上为 100,由“getconf CLK_TCK”获取),如http://www.makelinux.net/books/lkd2/ch10lev1sec3 中所述。但是,我对其进行了测试,发现实际上启动时间在 ubuntu 12.04 上使用了 USER_HZ。我对这一点感到困惑。有人可以向我解释一下吗?非常感谢!

【问题讨论】:

    标签: linux proc


    【解决方案1】:

    您的man 页面在您检索它时可能已过期。这是一个more current page,它声明如下:

    (22) 开始时间 %llu

          The time the process started after system boot.  In
          kernels before Linux 2.6, this value was expressed
          in jiffies.  Since Linux 2.6, the value is expressed
          in clock ticks (divide by sysconf(_SC_CLK_TCK)).
    

    在较旧的内核(Linux 2.6 之前)中,时间确实以内核 jiffies 表示。但是,此行为现在更改为以时钟滴答为单位提供时间 - 正如您所期望的那样,通过 USER_HZ 常量缩放 jiffies。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多