第27章 SCHED_OTHER タスクの移行の制限
sched_nr_migrate を使用すると、SCHED_OTHER が他の CPU に移行するタスクを制限できます。
前提条件
- 管理者権限がある。
27.1. タスクの移行 リンクのコピーリンクがクリップボードにコピーされました!
SCHED_OTHER タスクが他の多数のタスクを生成する場合、それらはすべて同じ CPU 上で実行されます。migration タスクまたは softirq は、アイドル状態の CPU で実行できるように、これらのタスクのバランスをとろうとします。
sched_nr_migrate は、一度に移動するタスクの数を指定するように調整できます。リアルタイムタスクの移行方法は異なるため、この影響を直接受けることはありません。ただし、softirq がタスクを移動すると、実行キューのスピンロックが有効になり、割り込みが無効になります。
移行が必要なタスクが多数存在すると、そのタスクは割り込みが無効になっている間に発生するため、タイマーイベントやウェイクアップは同時には行われません。これにより、sched_nr_migrate を大きい値に設定した場合に、リアルタイムタスクで深刻なレイテンシーが発生する可能性があります。