我试图弄清楚如何在 FreeBSD 系统上设置特定线程(但不是整个进程)的亲和力。
在 Linux 上,我可以使用 来执行此操作ps -L uH [pid]
,获取线程的 LWP ID,然后taskset
像使用实际的 PID 那样使用 - taskset -pc [cpu list] [lwp]
。我还没有找到 FreeBSD 的类似方法。
我可以使用 获取线程 ID procstat -t [pid]
,但尝试设置该线程 ID(使用cpuset -l [cpu list] -p [thread id]
)会返回“没有这样的进程”。
答案1
根据联机帮助页,有一个-t
cpuset 选项用于指定线程(-p
仅采用 PID):
-t tid Specifies a thread id as the target of the operation.
我现在没有 FreeBSD 系统来测试,所以我不知道你是否需要指定-p
或者是否-t
足够好。您可以尝试不使用 then 并观察结果。