12.3. 単一の CPU を分離して、使用率の高いタスクを実行


cpusets メカニズムを使用すると、SCHED_DEADLINE タスクに一連の CPU とメモリーノードを割り当てることができます。CPU 使用率の高いタスクと低いタスクが混在するタスクセットにおいて、使用率の高いタスクを実行する CPU を分離し、使用率の低いタスクを異なる CPU セットでスケジューリングすることで、すべてのタスクが与えられた runtime を満たすことが可能になります。`cpusets' の設定は手動で追加する必要があります。

前提条件

  • システムの root 権限がある。

手順

  1. cluster と partition という名前の 2 つのコントロールグループを作成します。

    # cd /sys/fs/cgroup
    # echo +cpuset > cgroup.subtree_control
    # mkdir cluster
    # mkdir partition
    # echo +cpuset | tee cluster/cgroup.subtree_control partition/cgroup.subtree_control
  2. cluster コントロールグループで、使用率の低いタスクが CPU 1 - 7 で実行されるようにスケジュールします。メモリーサイズを検証し、コントロールグループを排他的として指定します。

    # cd cluster
    # echo 1-7 | tee cpuset.cpus cpuset.cpus.exclusive
    # echo root > cpuset.cpus.partition
  3. 使用率の低いタスクをすべて cluster コントロールグループに移動します。

    # ps -eLo lwp | while read thread; do echo $thread > cgroup.procs ; done
  4. partition コントロールグループで、使用率の高いタスクを割り当てます。

    # echo 0 | tee cpuset.cpus cpuset.cpus.exclusive
    # echo isolated > cpuset.cpus.partition
  5. シェルを partition コントロールグループに追加して起動します。

    # echo $$ > cgroup.procs

    この設定により、partition コントロールグループで分離されたタスクが、cluster コントロールグループ内のタスクに干渉しなくなります。これにより、すべてのリアルタイムタスクがスケジューラーの期限に間に合うようになります。期限スケジューラーを使用している場合、通常はこの変更を行わなくても期限は満たされます。他のタスクには独自の期限があることに注意してください。

アプリケーションが適切なピニングを使用する準備ができている場合は、cgroups を調整して partition cgroup にさらに多くの CPU を割り当て、すべてのリアルタイムタスクをそれに割り当てることで、ノイズをさらに削減できます。

# cd ..
# echo 4-7 | tee cluster/{cpuset.cpus,cpuset.cpus.exclusive}
# echo 0-3 | tee partition/{cpuset.cpus,cpuset.cpus.exclusive}
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る