什么因素算作正常运行时间?

什么因素算作正常运行时间?

问题很简单:计算机处于以下任何状态的时间段是否计入系统的总正常运行时间?

  • 冬眠
  • 暂停系统
  • 改变运行级别

笔记

  • 我对命令本身不感兴趣uptime。快速查看 Terrance 提供的源代码链接,没有发现任何有关休眠或暂停的信息
  • 我感兴趣的是内核如何计算系统运行的时间,以及暂停/休眠如何影响该值。
  • 如果可能,请提供文档参考

答案1

uptime命令从 中获取数据/proc/uptime,该数据完全由内核公开。因此,我们将查看内核文档以了解这实际上代表什么。

Documentation/filesystems/proc.txt, 我们看:

uptime      Wall clock since boot, combined idle time of all cpus

(此文件中有两个值,因此有两个描述)

这里提到的“挂钟”很重要——它指的是所有经过的时间,无论机器的时钟是否在运行。因此,这个时间将在挂起或休眠状态下不断增加。

换句话说,正常运行时间值实际上就是自上次启动以来经过的时间。

答案2

非常uptime具有误导性。如果你使用uptime -s它,会更有意义:

$ uptime -s
2019-10-31 05:30:09

现在你可以看到它只是显示了上次启动时间。如果你想知道真正的正常运行时间,请参阅这个答案. 输出样例:

$ suspendtime
Oct 31 05:55:19 to Oct 31 16:54:26 lasting 39,547 seconds
Oct 31 23:21:21 to Nov 01 04:29:12 lasting 18,471 seconds
Nov 01 05:51:27 to Nov 01 17:08:34 lasting 40,627 seconds
Nov 02 00:01:33 to Nov 02 10:28:46 lasting 37,633 seconds
Nov 02 18:15:59 to Nov 02 19:10:14 lasting 3,255 seconds
Nov 02 21:17:33 to Nov 03 05:31:54 lasting 33,261 seconds
Nov 03 12:06:39 to Nov 03 14:22:50 lasting 8,171 seconds
Nov 03 22:28:12 to Nov 04 04:17:13 lasting 20,941 seconds
Nov 04 05:49:40 to Nov 04 16:48:52 lasting 39,552 seconds
Nov 04 21:45:48 to Nov 05 04:19:26 lasting 23,618 seconds
Nov 05 05:52:05 to Nov 05 16:32:38 lasting 38,433 seconds
Nov 05 21:12:18 to Nov 06 04:16:50 lasting 25,472 seconds
Nov 06 05:50:45 to Nov 06 16:22:54 lasting 37,929 seconds

Linux uptime 572,689 seconds (6 Days 15 Hours 4 Minutes 49 Seconds)
13 Suspends 366,910 seconds (4 Days 5 Hours 55 Minutes 10 Seconds)
Real uptime 205,779 seconds (2 Days 9 Hours 9 Minutes 39 Seconds)

相关内容