pthread でのスレッド優先度の調整
Linux では、pthread はスレッド優先度を変更する機能を提供します。ただし、適切な範囲を決定し、スレッド優先度の説明を理解するのは難しい場合があります。
スケジューリング ポリシーとスレッド優先度の範囲
デフォルトの Linux スケジューリング ポリシーは SCHED_OTHER であり、これには優先制御ですが、「素晴らしい」レベルを設定することもできます。優先度制御を強化するには、SCHED_BATCH やリアルタイム ポリシー (SCHED_FIFO、SCHED_RR) などの他のポリシーに切り替えることを検討してください。
SCHED_BATCH およびスレッド優先度
SCHED_BATCH は、次のような場合に適しています。 root権限が利用できない場所。優先順位の範囲は 0 ~ 0 ですが、スレッドの優先順位を大幅に上げるには不十分な場合があります。
ルート権限とリアルタイム ポリシー
リアルタイム ポリシー(SCHED_FIFO、SCHED_RR) は、より詳細なスレッド優先度制御を提供します。ただし、これらのポリシーには root 権限が必要であり、不適切に使用するとシステムのハングにつながる可能性があります。
chrt ツールを使用したシステム機能の決定
chrt ユーティリティは優先順位の範囲を明らかにできます。システムによってサポートされています。たとえば、コマンド「chrt -m」は、さまざまなスケジュール ポリシーの最小優先度と最大優先度を表示します。
注意事項
リアルタイム ポリシーを使用することが不可欠です。システムの安定性に影響を与える可能性があるため、慎重に行ってください。要件が不明な場合は、SCHED_BATCH などのあまり積極的でないポリシーを使用するか、SCHED_OTHER 内で「適切」レベルを調整することを検討してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3