如何在Linux上测量从一个核心到另一个核心的进程迁移时间?

时间:2011-08-18 10:02:49

标签: c linux

在linux上,我们可以通过以下命令使cpu核心脱机:

echo 0 > /sys/devices/system/cpu/<core num>/online. 

这会导致在该核心上运行的进程迁移到其他核心。 我需要做的是衡量从一个进程迁移进程所需的时间 核心到另一个。我该怎么做?

2 个答案:

答案 0 :(得分:1)

进程从一个核心到另一个核心的迁移时间等于从一个核心获取进程状态并将此体系结构状态写回新核心所需的时间。这等于上下文切换的时间。您可以找到许多样本,例如this one,用于衡量Linux中进程的上下文切换时间。

P.S。更改关联性是将进程迁移到另一个核心而不是使核心联机或脱机的更好方法。

答案 1 :(得分:1)

您可以查看cpuid。我想你可以汇集cpu序列号,看看它何时发生变化。问题是它不仅包括迁移时间,还包括进程等待在分配给它的新cpu中执行的时间。