【发布时间】:2011-08-18 10:02:49
【问题描述】:
在 linux 上,我们可以通过以下命令使 cpu 内核脱机:
echo 0 > /sys/devices/system/cpu/<core num>/online.
这会导致在该核心上运行的进程迁移到其他核心。 我需要做的是测量从一个进程迁移一个进程所需的时间 核心到另一个。我该怎么做?
【问题讨论】:
在 linux 上,我们可以通过以下命令使 cpu 内核脱机:
echo 0 > /sys/devices/system/cpu/<core num>/online.
这会导致在该核心上运行的进程迁移到其他核心。 我需要做的是测量从一个进程迁移一个进程所需的时间 核心到另一个。我该怎么做?
【问题讨论】:
进程从一个内核迁移到另一个内核的时间等于从一个内核获取进程状态并将此架构状态写回新内核所需的时间。这等于上下文切换的时间。您可以找到许多示例,例如this one,用于测量 Linux 中进程的上下文切换时间。
附言更改亲和性是将进程迁移到另一个核心而不是使核心联机或脱机的更好方法。
【讨论】:
您可以查看cpuid。我想您可以汇集 cpu 序列号并查看它何时更改。问题是它不仅包括迁移时间,还包括进程等待在分配给它的新 cpu 中执行的时间。
【讨论】: