uptime
Run Code Online (Sandbox Code Playgroud)
显示其中有 4 个用户,我应该担心吗?
根据 man uptime
正常运行时间提供以下信息的一行显示。当前时间、系统运行了多长时间、当前登录的用户数以及过去 1、5 和 15 分钟的系统负载平均值。
有没有办法找到“当前登录”的四个用户?
在多用户系统上,我想以 CPU 时间的秒数来衡量每个用户的 CPU 使用率。出于此测量的目的,我假设如果 PID 属于某个用户,则该用户会导致 CPU 时间 - 即我忽略了守护程序和内核。
目前我正在这样做,每五秒钟:
ps aux
x
的总和,UTIME,cutime,STIME和cstime从/proc/[pid]/stat
t = x / interval
(高负载时间隔并不总是恰好 5 秒)如果我运行这个,我会得到合理的值。例如:这个系统上的一个用户在 python ( while True: pass
) 中旋转,系统显示大约每秒 750 毫秒的 CPU 时间。当系统挂了一点时,它报告了 1600 毫秒的 1 秒 inverval。这似乎是正确的,但我不明白这些价值观可能具有欺骗性,特别是考虑到我并不真正理解它们。
所以我的问题是:
在每个用户的基础上衡量 CPU 负载的公平和正确的方法是什么?
该方法必须相当准确。该系统上可能有数百个用户,因此从中提取百分比ps aux
将不够准确,特别是对于许多软件喜欢生成的短期线程。
虽然这可能很复杂,但我绝对知道这是可能的。这是我的出发点:
内核会跟踪进程的创建时间以及它在其生命周期中消耗的 CPU 时间。每个时钟滴答,内核都会更新当前进程在系统和用户模式下花费的时间,以 jiffies 为单位。—(来自Linux 文档项目)
我追求的值是用户在 CPU 上花费的秒数(或 jiffies),而不是系统负载或 CPU 使用率的百分比。
在进程仍在运行时测量 CPU 时间很重要。有些进程只会持续半秒,有些会持续数月——我们需要同时捕捉这两种情况,以便我们可以细粒度地考虑用户的 CPU 时间。
实际上,我有一个 linux 系统(运行 Ubuntu 12.04.3)好几天没有重启。我遇到了一些错误,例如睡眠挂起和某些网络挂载的文件系统无法挂载甚至无法对其进行挂载(通过其他 PC 验证,网络挂载工作正常)。
想要检查 Linux 是否还需要在一段时间后重新启动机器以避免这些类型的不可重复的奇怪错误。
我们可以维护 PC 的最长时间是多少?如果我们的系统运行一年或更长时间而无需重新启动,是否还会出现其他一些问题?
问题很简单:计算机处于以下任何状态的时间段是否计入系统的总正常运行时间?
注意:
uptime
命令本身不感兴趣。快速查看特伦斯提供的源代码链接没有显示任何有关休眠或挂起的信息当我进入休眠状态并恢复然后查看运行结果时uptime
,我注意到休眠持续时间也包括在内。在pm-hibernate
手册页中。它指出:“在休眠期间,系统完全关闭,”。
如果“系统完全关闭”或由于系统休眠而暂停,正常运行时间不应该重置为零,还是这是一个错误?
我想通过电子邮件向我的客户发送月度正常运行时间报告。任何人都可以帮助我如何生成月度报告。
uptime -s
显示机器何时启动:
示例输出:2020-12-31 03:24:00
.
有没有办法知道机器重新启动时的确切日期时间?
我需要在正常运行时间 >= 20 分钟(例如)时运行 BASH 脚本。我该怎么做?
请帮我创建脚本以检查系统正常运行时间并检查正常运行时间是否超过 20 分钟 - 运行另一个脚本。
谢谢。