第 26 章 限制 SCHED_OTHER 任务迁移
您可以使用 sched_nr_migrate
变量限制 SCHED_OTHER
迁移到其他 CPU 的任务。
先决条件
- 有管理员特权。
26.1. 任务迁移 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
如果 SCHED_OTHER
任务生成大量其他任务,则它们将在同一 CPU 上运行。迁移
任务或 softirq
将尝试平衡这些任务,以便它们可以在空闲的 CPU 上运行。
可以调整 sched_nr_migrate
选项,以指定每次要移动的任务数量。由于实时任务有不同的迁移方式,因此它们不会直接受到此问题的影响。但是,当 softirq
移动任务时,它会锁定运行队列 spinlock,从而禁用中断。
如果需要移动大量任务,它会在中断被禁用时发生,因此不允许同时发生计时器事件或唤醒。当 sched_nr_migrate
设置为一个大的值时,这可能会导致实时任务出现严重延迟。