使用 taskset 命令的正确方法

问题描述

我正在使用此命令获取可用的 cpu

cat /proc/cpuinfo | grep processor |wc -l

它说,我有 4 个可用内核(实际上是 2 个物理内核和其他逻辑内核)

然后我从命令行运行我的任务 python3 mytask.py。运行我的程序后,我想更改其固定核心,仅在 core0 或 core3 或仅在 core0 和 core2 中

我知道我可以用 os.sched_setaffinity() 函数来做到这一点,但我想用 taskset 命令来做到这一点

我正在尝试这个;

taskset -pc 2 <pid> 我可以运行这个命令只检查我的可用 cpu 数量吗?

或者我是否必须在运行 taskset 命令之前检查我的任务的合格内核?

如果新的关联列表介于 0 和 4 之间,Linux 内核会保证我接受它吗?

例如,我有 4 个 cpu 可用,当我想将 kworker 线程亲缘关系 core0 更改为 core1 时,它失败了。然后我用这个命令检查了 kworker 线程允许的 cpu

cat /proc/6/status |grep "cpus_allowed_list:"

显示当前关联列表:0

当我想运行 taskset 命令来更改关联列表时,是否需要检查“cpus_allowed_list”?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)