在UNIX中,墙上时钟时间、用户CPU时间和系统CPU时间具体是什么?

我可以根据名称进行猜测,但UNIX中的Wall-Clock-Time、User-CPU-Time和System-CPU-Time具体是什么?

用户CPU时间是执行用户代码所花费的时间量,而内核CPU时间是由于需要特权操作(如磁盘I/O)而在内核中花费的时间量吗?

这个测量是以什么时间为单位的?

挂钟时间真的是进程在CPU上花费的秒数吗?或者这个名称只是误导?

109493 次浏览

挂钟时间:根据计算机内部时钟经过的时间,应与外部世界的时间相匹配。这与CPU使用率无关;仅供参考。

用户CPU时间和系统时间:正是你所想的。系统调用,包括I/O调用,如readwrite等。通过跳转到内核代码并执行它来执行。

如果挂钟时间<;CPU时间,那么你是在并行执行一个程序。如果挂钟时间>CPU时间,则您正在等待磁盘、网络或其他设备。

所有时间均以秒为单位,以为单位。

挂钟的时间就是它所说的,由你墙上的时钟(或手表)测量的时间。

用户CPU时间是花费在";USER LAND";,即花费在非内核进程上的时间。

系统CPU时间是在内核中花费的时间,通常是为系统调用服务所花费的时间。

挂钟时间是墙上的时钟(或手中的秒表)测量的从过程开始到“现在”之间经过的时间。

用户CPU时间和系统CPU时间与您所说的差不多-用户代码所花费的时间和内核代码所花费的时间。

单位是秒(和亚秒,可能是微秒或纳秒)。

挂钟时间不是进程在CPU上花费的秒数;它是经过的时间,包括在CPU上等待轮到它的时间(当其他进程开始运行时)。

time [WHAT-EVER-COMMAND]

real    7m2.444s
user    76m14.607s
sys 2m29.432s


$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                24

实时钟或挂钟

真正的7m2.444s

在具有24核处理器的系统上,此CMD/进程需要超过7分钟才能完成。通过利用所有给定内核的最可能的并行性。

用户

用户76m14.607s

CMD/进程已经使用了这么多的CPU时间。

换句话说,在具有单核CPU的机器上,真实和用户将几乎相等,因此相同的命令将花费大约76分钟来完成。

系统

系统2M29.432S

这是内核执行所有基本/系统级操作以运行此CMD所花费的时间,包括上下文切换、资源分配等。

注意:该示例假设您的命令使用了并行/线程。

详细手册页:https://linux.die.net/man/1/time