是否可以为特定用户设置cpu亲和力?

我的意思是,他们有什么办法可以为特定的用户设置cpu亲和力,为他所有正在运行的进程或稍后启动的进程?

是的,这是可能的。

我将执行用户的进程到由您希望使用的CPU核心组成的cgroup 。 根据您的RHEL版本(5对6),您可以通过EL5中的cpusets / cset使用CPU屏蔽,或者尝试EL6中logging的cgroup方法 。 后一个例子使用/etc/cgrules.conf文件来定义cgroup资源的规则(例如,所有属于Jerome的进程都将运行在指定的cgroup中)。 前者允许您直接执行进程到CPU屏蔽。

对于你使用cset的例子,我只需要为用户执行一个bash shell到正确的CPU屏蔽。 他们的所有儿童程序将被包含在内。 看到这里 。

下面的小bash脚本将做到这一点:

 u=username # do not set this to root! c=logical processor number you want to bind to for p in $(pgrep -u $u) do taskset -cp $c $p done 

绑定进程的subprocess将保持绑定到该cpu-set。