问题描述
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 (将#修改为@)