![top 命令在查找 CPU 使用率百分比时要考虑多少时间?](https://linux22.com/image/1428563/top%20%E5%91%BD%E4%BB%A4%E5%9C%A8%E6%9F%A5%E6%89%BE%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E7%99%BE%E5%88%86%E6%AF%94%E6%97%B6%E8%A6%81%E8%80%83%E8%99%91%E5%A4%9A%E5%B0%91%E6%97%B6%E9%97%B4%EF%BC%9F.png)
Top 给出的输出如下:
%Cpu(s): 4.7 us, 1.3 sy, 0.0 ni, 93.9 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
如果我的 CPU 将 4.7% 的时间花在用户进程上,那么在得出这样的结果之前它考虑了多少时间历史?
答案1
从top 从哪里获取实时数据,bdonlan 的回答:
正如记录的那样进程(5),文件中
/proc/(pid)/stat
有以下字段:
utime %lu
此进程在用户模式下被调度的时间量,以时钟刻度为单位(除以 sysconf(_SC_CLK_TCK))。这包括客户机时间、guest_time(运行虚拟 CPU 所花费的时间,见下文),以便不了解客户机时间字段的应用程序不会在计算中丢失该时间。
stime %lu
此进程在内核模式下被调度的时间量,以时钟滴答为单位(除以 sysconf(_SC_CLK_TCK))。