第1章 RHEL 8 におけるリアルタイムカーネルチューニング
待ち時間、または応答時間は、イベントからの時間とシステム応答を指します。通常、マイクロ秒 (μs) で測定されます。
Linux 環境で実行されているほとんどのアプリケーションでは、基本的なパフォーマンスチューニングにより、レイテンシーを十分に改善できます。レイテンシーが低く、説明責任があり、予測可能性が高い必要がある業界向けに、Red Hat には、これらの要件を満たすレイテンシーを設定できる代替カーネルがあります。RHEL for Real Time 8
は、RHEL 8
とのシームレスな統合を提供し、クライアントが組織内のレイテンシーを測定、設定、および記録する機会を提供します。
リアルタイムカーネルは、適切にチューニングされたシステム、および非常に高い決定論要件を持つアプリケーションに使用します。カーネルシステムをチューニングすると、決定論を大幅に向上させることができます。まず、標準の RHEL 8
システムの一般的なシステムチューニングを実行してから、RHEL for Real Time カーネルをデプロイします。
これらのタスクを実行しないと、RHEL for Real Time デプロイメントから一貫したパフォーマンスが得られなくなる可能性があります。
1.1. チューニングガイドライン
リアルタイムチューニングは反復的なプロセスで、いくつかの変数を微調整するだけで最適な変更が得られることはありません。お使いのシステムに最適なチューニング設定のセットを絞り込むためには、数日または数週間かかると思ってください。
また、必ず長時間のテストを実行してください。あるチューニングパラメーターを変更してから 5 分間のテストを実行しても、特定のチューニング変更のセットを適切に検証したとは言えません。テストの長さを調整可能にして、数分間ではなくより長い時間実行してください。数時間のテストを実行して、いくつかの異なるチューニング設定のセットに絞り込み、それらのセットを一度に数時間から数日間実行することで、レイテンシーまたはリソース消費が大きい特殊なケースを検出できます。
- アプリケーションに測定メカニズムを構築し、特定のチューニング変更がアプリケーションのパフォーマンスにどのように影響を及ぼすかを正確に測定できるようにします。たとえば、"マウスの動きがよりスムーズになる" などの事例証拠は、正しくないことがほとんどで、人によって異なります。ハード的に測定を行い、後で分析できるようにそれらを記録します。
- テスト実行の間でチューニング変数に複数の変更を加えがちです。しかし、そうすると、テスト結果に影響を及ぼしたチューニングパラメーターを絞り込むことができなくなります。テスト間のチューニング変更は、可能な限り小さくします。
- また、チューニングを行う場合、大きな変更を加えがちですが、ほとんどの場合、増分変更を行う方が適切です。優先度の低い値から高い値に向かってテストを進めることで、長期的に見て良い結果が得られます。
-
利用可能なツールを使用してください。
tuna
チューニングツールを使用すると、スレッドと割り込みに対するプロセッサーアフィニティー、スレッドの優先順位を簡単に変更したり、アプリケーションで使用するプロセッサーを分離したりできます。taskset
およびchrt
コマンドラインユーティリティーを使用すると、tuna
が実行するほとんどのことを実行できます。パフォーマンスの問題が発生した場合、ftrace
およびperf
ユーティリティーがレイテンシーの問題の特定に役立ちます。 - アプリケーションで値をハードコーディングするのではなく、外部ツールを使用してポリシー、優先度、アフィニティーを変更します。外部ツールを使用すると、さまざまな組み合わせを試すことができ、ロジックが簡素化されます。良好な結果が得られる設定をいくつか見つけたら、それらをアプリケーションに追加するか、アプリケーションの起動時に設定が実装されるように起動ロジックを設定します。