我运行了顶级-H -p进行了一个过程,它为我提供了几个带有LWP的线程。 但是当我首先用最小的PID对结果进行排序时,我注意到第一个线程中的时间是恒定的,但其他线程的时间正在改变。为什么TIME +不同?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16989 root 20 0 106m 28m 2448 S 0.0 0.2 0:22.31 glusterfs
16990 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
16992 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
16993 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
16997 root 20 0 106m 28m 2448 S 0.0 0.2 0:11.71 glusterfs
17010 root 20 0 106m 28m 2448 S 0.0 0.2 0:21.07 glusterfs
17061 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
答案 0 :(得分:1)
为什么TIME +会有所不同?
因为不同的线程正在做不同的工作百分比。这个 1 可能有很多原因,但最有可能的是应用程序(glusterfs)没有尝试在工作线程中均匀分配工作。
不用担心。如果工作级别(参见%CPU)可以忽略不计,那么哪个线程可以正常工作并不重要。
1 - 如果有人有时间和倾向,他们可以查看glusterfs的源代码,试图了解它的行为。但是,我认为这种努力是不合理的。
答案 1 :(得分:0)
因为时间列引用了进程所消耗的时间,所以当进程时间没有改变时,它可能意味着这个进程是" sleep"或者只是等待其他过程完成,但可能还有更多原因。
http://linux.about.com/od/commands/l/blcmdl1_top.htm
时间:
任务自启动以来使用的总CPU时间。如果是累积模式 打开,这还包括进程的子进程使用的CPU时间 已经死了。您可以使用S命令行设置累积模式 选项或使用交互命令S切换它。标题行 然后将更改为CTIME。