如何衡量流程之间的干扰

时间:2012-10-17 08:36:53

标签: performance computer-science performance-testing measurement perf

在并行系统中,每个进程都会对其他进程产生影响,因为它们都会竞争几个稀缺资源,如cpu-caches,内存,磁盘I / O,网络等。

哪种方法最适合测量过程之间的干扰?如过程A& B每个都大量访问磁盘。因此,并行运行它们可能会慢于运行顺序(单个运行时)。因为瓶颈是硬盘。

如果我不确切知道进程的行为(磁盘,内存或CPU密集型),最好分析哪种方法?

测量单个运行时并比较每个并行进程的相对份额?

类似于进程A单独运行30s,当与B 45s平行100%时,20%并行运行35s等等。

比较L1和amp;等几个指标会更好吗? LLC缓存未命中,页面错误等等。

1 个答案:

答案 0 :(得分:1)

您需要做的是首先确定每个程序的限制因素。如果你想同时运行CPU绑定和IO绑定,它将产生很小的影响。如果你想运行两个IO绑定进程,同时会有很多争用。

我写了一个相当详细的答案,关于如何解释“time [command]”结果的输出,看看是什么限制因素。就在这里:What caused my elapsed time much longer than user time?

一旦你从程序的“时间”获得了输出,你就可以确定哪些可能会相互踩踏,哪些不是。