我可以根据名称进行猜测,但UNIX中的Wall-Clock-Time、User-CPU-Time和System-CPU-Time具体是什么?
用户CPU时间是执行用户代码所花费的时间量,而内核CPU时间是由于需要特权操作(如磁盘I/O)而在内核中花费的时间量吗?
这个测量是以什么时间为单位的?
挂钟时间真的是进程在CPU上花费的秒数吗?或者这个名称只是误导?
挂钟时间:根据计算机内部时钟经过的时间,应与外部世界的时间相匹配。这与CPU使用率无关;仅供参考。
用户CPU时间和系统时间:正是你所想的。系统调用,包括I/O调用,如read、write等。通过跳转到内核代码并执行它来执行。
read
write
如果挂钟时间<;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
注意:该示例假设您的命令使用了并行/线程。
详细手册页:https://linux.die.net/man/1/time