1

命令psutil.cpu_times() 的输出是这样的:

scputimes(user=2298.7, nice=20.11, system=728.58, idle=49415.86, iowait=153.26, irq=0.08, softirq=16.78, steal=0.0, guest=0.0, guest_nice=0.0)

和值是 CPU 在用户与系统操作上花费了多长时间usersystem但其他返回值的含义是什么?

例如,我怎样才能获得最近 3 分钟内发生的上下文切换的数量?

4

2 回答 2

4

这些是累积数字,因此它们代表自系统启动以来 CPU 所花费的时间。至于每个值的含义(idle、iowait等)看一下“man proc”:

cpu  3357 0 4313 1362393
     The  amount of time, measured in units of USER_HZ (1/100ths of a second on most
     architectures, use sysconf(_SC_CLK_TCK) to obtain the right  value),  that  the
     system spent in various states:

     user   (1) Time spent in user mode.

     nice   (2) Time spent in user mode with low priority (nice).

     system (3) Time spent in system mode.

     idle   (4) Time spent in the idle task.  This value should be USER_HZ times the
            second entry in the /proc/uptime pseudo-file.

     iowait (since Linux 2.5.41)
            (5) Time waiting for I/O to complete.

     irq (since Linux 2.6.0-test4)
            (6) Time servicing interrupts.

     softirq (since Linux 2.6.0-test4)
            (7) Time servicing softirqs.

     steal (since Linux 2.6.11)
            (8) Stolen time, which is the time spent in other operating systems when
            running in a virtualized environment

     guest (since Linux 2.6.24)
            (9)  Time  spent running a virtual CPU for guest operating systems under
            the control of the Linux kernel.

     guest_nice (since Linux 2.6.33)
            (10) Time spent running a niced guest (virtual CPU for  guest  operating
            systems under the control of the Linux kernel).
于 2014-11-25T12:42:08.327 回答
0

正如您所说,用户和系统分别是用户或系统操作所花费的时间,nice 是进程的niceness(优先级)。

根据文档,函数 psutil.get_num_ctx_switches() 返回进程执行的自愿和非自愿上下文切换的数量(请参阅文档

于 2014-11-20T14:17:07.083 回答