第27章 スケジューリングポリシーの調整


Red Hat Enterprise Linux ではプロセス実行の最小単位をスレッドと呼んでいます。システムスケジューラーは、スレッドを実行するプロセッサーと、スレッドの実行期間を決定します。しかし、スケジューラーの主な目標はシステムを常に稼働させ続けることです。そのため、スケジューラーは、アプリケーションのスケジューリングポリシーのパフォーマンスカテゴリーに最適な形で、スレッドをスケジュールしない可能性があります。

たとえば、NUMA システムでノード B のプロセッサーが利用可能になったときアプリケーションはノード A で実行中だったと仮定します。プロセッサーをノード B でビジー状態に維持するために、スケジューラーはアプリケーションのスレッドのいずれかをノード B に移動します。ただし、アプリケーションスレッドは依然としてノード A のメモリーにアクセスする必要があります。ただし、スレッドがノード B で実行され、ノード A のメモリーがスレッドに対してローカルにならないため、このメモリーへのアクセスには時間がかかります。そのため、スレッドがノード B での実行を終了するには、ノード A のプロセッサーが利用可能になるまで待機してから、ローカルメモリーアクセスで元のノードでスレッドを実行するよりも時間がかかる場合があります。

27.1. スケジューリングポリシーの分類

パフォーマンス重視のアプリケーションでは、多くの場合、設計者または管理者がスレッドの実行場所を決定することでメリットが得られます。Linux スケジューラーは、スレッドが実行される場所と期間を決定するいくつかのスケジューリングポリシーを実装します。以下は、スケジューリングポリシーの主なカテゴリーです。

通常のポリシー
通常スレッドは、通常の優先度のタスクに使用されます。
リアルタイムポリシー
リアルタイムポリシーは、中断なしで完了する必要のある時間的制約のあるタスクに使用されます。リアルタイムスレッドは、タイムスライスの対象ではありません。つまり、スレッドは、ブロック、終了、デプロイメント、または優先度の高いスレッドによってプリエンプションされるまで実行されます。

最も優先度の低いリアルタイムスレッドは、通常のポリシーを持つスレッドの前にスケジュールされます。詳細は、SCHED_FIFO を使用した静的優先度スケジューリングSCHED_RR を使用したラウンドロビン優先度スケジューリング、およびシステム上の sched(7)sched_setaffinity(2)sched_getaffinity(2)sched_setscheduler(2)、および sched_getscheduler(2) man ページを参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る