我想在服务器上对BLAST运行时进行基准测试,因此我启动了time
命令。
服务器有16个CPU,我正在运行BLAST 16线程。在进行分析时,可能还有其他应用程序并行运行。
输出如下:
184255.45user 458.23system 6:37:54elapsed 773%CPU (0avgtext+0avgdata 83504272maxresident)k
294680inputs+10029344outputs (1799major+149694417minor)pagefaults 0swaps
将用户时间解释为CPU运行我的应用程序所花费的秒数我得到的时间超过总时间。我看到人们告诉我应该用%CPU来分配时间,但是我只得到3分钟,这对于BLAST和我输入的大小的输入是不现实的。
我需要的信息是用户时间,但我不确定如何解释它。
有关结果解释的任何建议吗?
答案 0 :(得分:3)
从联机帮助页(取自here):
The default format is: %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
因此, 184255 秒花费在用户空间中, 458 秒在内核空间中, 6小时37分54秒过去“真实”时间
正如迪特里希·艾普在评论中指出的那样,看着已经过去的时间,他们匹配, 6:37:53 是 397.8833 分钟。
Here's对user/system/real(elapsed)
时间之间差异的一个很好的解释:
真实是挂钟时间 - 从通话开始到结束的时间。这是所有经过的时间,包括其他进程使用的时间片 并且该过程花费的时间被阻止(例如,如果它正在等待 I / O完成)。
用户是进程内用户模式代码(内核外)花费的CPU时间。这只是实际使用的CPU时间 执行过程。流程花费的其他流程和时间 被阻止不计入这个数字。
Sys是进程内核中花费的CPU时间。这意味着执行在系统调用中花费的CPU时间 内核,而不是仍在运行的库代码 用户空间。与'user'一样,这只是进程使用的CPU时间。 有关内核模式的简要说明,请参见下文(也称为 '主管'模式)和系统调用机制。