Jump To Close Expand all Collapse all Table of contents 低レイテンシー操作のための RHEL 9 for Real Time の最適化 多様性を受け入れるオープンソースの強化 Red Hat ドキュメントへのフィードバック (英語のみ) 1. RHEL 9 におけるリアルタイムカーネルチューニング Expand section "1. RHEL 9 におけるリアルタイムカーネルチューニング" Collapse section "1. RHEL 9 におけるリアルタイムカーネルチューニング" 1.1. チューニングガイドライン 1.2. スレッドスケジューリングポリシー 1.3. ロギングパラメーターのバランシング 1.4. 不要なアプリケーションの実行を回避することによるパフォーマンスの改善 1.5. 不均等メモリーアクセス (NUMA) 1.6. debugfs のマウントの確認 1.7. RHEL for Real Time の InfiniBand 1.8. RoCE および高パフォーマンスネットワークの使用 1.9. RHEL for Real Time のコンテナー調整 2. RHEL for Real Time のスケジューリングポリシー Expand section "2. RHEL for Real Time のスケジューリングポリシー" Collapse section "2. RHEL for Real Time のスケジューリングポリシー" 2.1. スケジューラーポリシー 2.2. SCHED_DEADLINE ポリシーのパラメーター 3. 永続的なカーネルチューニングパラメーターの設定 Expand section "3. 永続的なカーネルチューニングパラメーターの設定" Collapse section "3. 永続的なカーネルチューニングパラメーターの設定" 3.1. カーネルチューニングパラメーターの変更の永続化 4. アプリケーションのチューニングとデプロイメント Expand section "4. アプリケーションのチューニングとデプロイメント" Collapse section "4. アプリケーションのチューニングとデプロイメント" 4.1. リアルタイムアプリケーションでのシグナル処理 4.2. スレッドの同期 4.3. リアルタイムスケジューラーの優先度 4.4. 動的ライブラリーの読み込み 5. システムチューニング用の BIOS パラメーターの設定 Expand section "5. システムチューニング用の BIOS パラメーターの設定" Collapse section "5. システムチューニング用の BIOS パラメーターの設定" 5.1. 電源管理の無効化による応答時間の改善 5.2. エラー検出と修正ユニットの無効化による応答時間の改善 5.3. システム管理割り込みの設定による応答時間の改善 6. リアルタイムカーネルのランタイム検証 Expand section "6. リアルタイムカーネルのランタイム検証" Collapse section "6. リアルタイムカーネルのランタイム検証" 6.1. ランタイムモニターとリアクター 6.2. オンラインランタイムモニター 6.3. ユーザーインターフェイス 7. ハードウェアおよびファームウェアのレイテンシーテストの実行および解釈 Expand section "7. ハードウェアおよびファームウェアのレイテンシーテストの実行および解釈" Collapse section "7. ハードウェアおよびファームウェアのレイテンシーテストの実行および解釈" 7.1. ハードウェアおよびファームウェアのレイテンシーテストの実行 7.2. ハードウェアおよびファームウェアのレイテンシーテストの解釈 8. システムレイテンシーテストの実行および解釈 Expand section "8. システムレイテンシーテストの実行および解釈" Collapse section "8. システムレイテンシーテストの実行および解釈" 8.1. 前提条件 8.2. システムレイテンシーテストの実行 9. RHEL for Real Time での CPU アフィニティーの設定 Expand section "9. RHEL for Real Time での CPU アフィニティーの設定" Collapse section "9. RHEL for Real Time での CPU アフィニティーの設定" 9.1. taskset コマンドを使用したプロセッサーアフィニティーの調整 9.2. sched_setaffinity() システムコールを使用したプロセッサーアフィニティーの設定 9.3. 単一の CPU を分離して、使用率の高いタスクを実行 9.4. CPU パフォーマンスのスパイクの低減 9.5. PC カードデーモンの無効化による CPU 使用量の削減 10. RHEL for Real Time での mlock() システムコールの使用 Expand section "10. RHEL for Real Time での mlock() システムコールの使用" Collapse section "10. RHEL for Real Time での mlock() システムコールの使用" 10.1. mlock() および munlock() システムコール 10.2. mlock() システムコールを使用したページのロック 10.3. mlockall() システムコールを使用して、マップされたすべてのページをロックする 10.4. mmap() システムコールを使用してファイルまたはデバイスをメモリーにマップする 10.5. mlock() システムコールのパラメーター 11. RHEL for Real Time での timerlat を使用したスケジューリングレイテンシーの測定 Expand section "11. RHEL for Real Time での timerlat を使用したスケジューリングレイテンシーの測定" Collapse section "11. RHEL for Real Time での timerlat を使用したスケジューリングレイテンシーの測定" 11.1. スケジューリングレイテンシーを測定するための timerlat トレーサーの設定 11.2. timerlat トレーサーのオプション 11.3. rtla-timerlat-top を使用したタイマーレイテンシーの測定 11.4. rtla timerlat top トレーサーのオプション 12. RHEL for Real Time での rtla-osnoise を使用したスケジューリングレイテンシーの測定 Expand section "12. RHEL for Real Time での rtla-osnoise を使用したスケジューリングレイテンシーの測定" Collapse section "12. RHEL for Real Time での rtla-osnoise を使用したスケジューリングレイテンシーの測定" 12.1. rtla-osnoise トレーサー 12.2. スケジューリングレイテンシーを測定するための rtla-osnoise トレーサーの設定 12.3. rtla-osnoise の設定オプション 12.4. rtla-osnoise のトレースポイント 12.5. rtla-osnoise トレーサーのオプション 12.6. rtla-osnoise-top トレーサーを使用したオペレーティングシステムノイズの測定 12.7. rtla-osnoise-top トレーサーのオプション 13. ジャーナリングに起因するシステムの速度低下を最小限に抑えるか回避する Expand section "13. ジャーナリングに起因するシステムの速度低下を最小限に抑えるか回避する" Collapse section "13. ジャーナリングに起因するシステムの速度低下を最小限に抑えるか回避する" 13.1. atime の無効化 13.2. 関連情報 14. レイテンシーの影響を受けるワークロードのグラフィックコンソール出力の無効化 Expand section "14. レイテンシーの影響を受けるワークロードのグラフィックコンソール出力の無効化" Collapse section "14. レイテンシーの影響を受けるワークロードのグラフィックコンソール出力の無効化" 14.1. グラフィックコンソールのグラフィックアダプターへのロギングの無効化 14.2. メッセージのグラフィックコンソールへの出力の無効化 15. アプリケーションのニーズを満たすためのシステムクロックの管理 Expand section "15. アプリケーションのニーズを満たすためのシステムクロックの管理" Collapse section "15. アプリケーションのニーズを満たすためのシステムクロックの管理" 15.1. ハードウェアクロック 15.2. システムで利用可能なクロックソースの表示 15.3. 現在使用中のクロックソースの表示 15.4. 使用するクロックソースの一時的な変更 15.5. ハードウェアクロックソースの読み込みコストの比較 15.6. Opteron CPU での TSC タイマーの同期 15.7. clock_timing プログラム 16. 電源管理移行の制御 Expand section "16. 電源管理移行の制御" Collapse section "16. 電源管理移行の制御" 16.1. 省電力の状態 16.2. 電源管理状態の設定 17. 割り込みとユーザープロセスを分離してシステムレイテンシーを最小限に抑える Expand section "17. 割り込みとユーザープロセスを分離してシステムレイテンシーを最小限に抑える" Collapse section "17. 割り込みとユーザープロセスを分離してシステムレイテンシーを最小限に抑える" 17.1. 割り込みおよびプロセスバインディング 17.2. irqbalance デーモンの無効化 17.3. IRQ バランスからの CPU の除外 17.4. 個々の IRQ への CPU アフィニティーの手動割り当て 17.5. taskset ユーティリティーを使用したプロセスの CPU へのバインド 18. Out of Memory (OOM) 状態の管理 Expand section "18. Out of Memory (OOM) 状態の管理" Collapse section "18. Out of Memory (OOM) 状態の管理" 18.1. 前提条件 18.2. Out of Memory 値の変更 18.3. Out of Memory 状態のときに強制終了するプロセスの優先順位付け 18.4. プロセスの Out of Memory Killer の無効化 19. tuna CLI を使用したレイテンシーの向上 Expand section "19. tuna CLI を使用したレイテンシーの向上" Collapse section "19. tuna CLI を使用したレイテンシーの向上" 19.1. 前提条件 19.2. tuna CLI 19.3. tuna CLI を使用した CPU の分離 19.4. tuna CLI を使用した指定の CPU への割り込みの移動 19.5. tuna CLI を使用したプロセススケジューリングポリシーおよび優先順位の変更 20. スケジューラーの優先順位の設定 Expand section "20. スケジューラーの優先順位の設定" Collapse section "20. スケジューラーの優先順位の設定" 20.1. スレッドのスケジューリングの優先度の表示 20.2. 起動時のサービスの優先度の変更 20.3. サービスの CPU 使用率の設定 20.4. 優先順位マップ 20.5. 関連情報 21. ネットワーク決定のヒント Expand section "21. ネットワーク決定のヒント" Collapse section "21. ネットワーク決定のヒント" 21.1. 割り込みの結合 21.2. ネットワークの輻輳の回避 21.3. ネットワークプロトコル統計の監視 21.4. 関連情報 22. trace-cmd を使用したレイテンシーのトレース Expand section "22. trace-cmd を使用したレイテンシーのトレース" Collapse section "22. trace-cmd を使用したレイテンシーのトレース" 22.1. trace-cmd のインストール 22.2. trace-cmd の実行 22.3. trace-cmd の例 22.4. 関連情報 23. tuned-profiles-real-time を使用した CPU の分離 Expand section "23. tuned-profiles-real-time を使用した CPU の分離" Collapse section "23. tuned-profiles-real-time を使用した CPU の分離" 23.1. 分離する CPU の選択 23.2. TuneD の isolated_cores オプションを使用した CPU の分離 23.3. nohz パラメーターおよび nohz_full パラメーターを使用した CPU の分離 24. SCHED_OTHER タスクの移行の制限 Expand section "24. SCHED_OTHER タスクの移行の制限" Collapse section "24. SCHED_OTHER タスクの移行の制限" 24.1. タスクの移行 24.2. sched_nr_migrate 変数を使用した SCHED_OTHER タスクの移行の制限 25. TCP パフォーマンスのスパイクの低減 Expand section "25. TCP パフォーマンスのスパイクの低減" Collapse section "25. TCP パフォーマンスのスパイクの低減" 25.1. TCP タイムスタンプの無効化 25.2. TCP タイムスタンプの有効化 25.3. TCP のタイムスタンプステータスの表示 26. RCU コールバックを使用した CPU パフォーマンスの改善 Expand section "26. RCU コールバックを使用した CPU パフォーマンスの改善" Collapse section "26. RCU コールバックを使用した CPU パフォーマンスの改善" 26.1. RCU コールバックのオフロード 26.2. RCU コールバックの移動 26.3. CPU の RCU オフロードスレッド起動からの除外 26.4. 関連情報 27. ftrace を使用したレイテンシーのトレース Expand section "27. ftrace を使用したレイテンシーのトレース" Collapse section "27. ftrace を使用したレイテンシーのトレース" 27.1. ftrace ユーティリティーを使用したレイテンシーの追跡 27.2. ftrace ファイル 27.3. ftrace トレーサー 27.4. ftrace の例 28. アプリケーションのタイムスタンプ Expand section "28. アプリケーションのタイムスタンプ" Collapse section "28. アプリケーションのタイムスタンプ" 28.1. POSIX クロック 28.2. clock_gettime での _COARSE クロックバリアントの使用 28.3. 関連情報 29. TCP_NODELAY を使用したネットワーク遅延の改善 Expand section "29. TCP_NODELAY を使用したネットワーク遅延の改善" Collapse section "29. TCP_NODELAY を使用したネットワーク遅延の改善" 29.1. TCP_NODELAY の使用による影響 29.2. TCP_NODELAY の有効化 29.3. TCP_CORK の有効化 29.4. 関連情報 30. ミューテックスの使用によるリソースの過剰使用の回避 Expand section "30. ミューテックスの使用によるリソースの過剰使用の回避" Collapse section "30. ミューテックスの使用によるリソースの過剰使用の回避" 30.1. ミューテックスオプション 30.2. ミューテックス属性オブジェクトの作成 30.3. 標準属性のミューテックスの作成 30.4. 拡張ミューテックス属性 30.5. ミューテックス属性オブジェクトの削除 30.6. 関連情報 31. アプリケーションのパフォーマンスの分析 Expand section "31. アプリケーションのパフォーマンスの分析" Collapse section "31. アプリケーションのパフォーマンスの分析" 31.1. システム全体の統計の収集 31.2. パフォーマンス分析結果のアーカイブ 31.3. パフォーマンス解析結果の分析 31.4. 定義済みイベントのリスト表示 31.5. 指定したイベント統計の取得 31.6. 関連情報 32. stress-ng を使用したリアルタイムのシステムのストレステスト Expand section "32. stress-ng を使用したリアルタイムのシステムのストレステスト" Collapse section "32. stress-ng を使用したリアルタイムのシステムのストレステスト" 32.1. CPU 浮動小数点ユニットとプロセッサーデータキャッシュのテスト 32.2. 複数のストレスメカニズムを使用した CPU のテスト 32.3. CPU 発熱量の測定 32.4. bogo 操作によるテスト結果の測定 32.5. 仮想メモリーの逼迫の生成 32.6. デバイスでの大きな割り込み負荷のテスト 32.7. プログラムでの深刻なページ障害の生成 32.8. CPU ストレステストメカニズムの表示 32.9. 検証モードの使用 33. コンテナーの作成と実行 Expand section "33. コンテナーの作成と実行" Collapse section "33. コンテナーの作成と実行" 33.1. コンテナーの作成 33.2. コンテナーの実行 33.3. 関連情報 34. プロセスの優先度の表示 Expand section "34. プロセスの優先度の表示" Collapse section "34. プロセスの優先度の表示" 34.1. chrt ユーティリティー 34.2. chrt ユーティリティーを使用したプロセス優先度の表示 34.3. sched_getscheduler() を使用してプロセスの優先度を表示する 34.4. スケジューラーポリシーの有効範囲の表示 34.5. プロセスのタイムスライスの表示 34.6. プロセスのスケジューリングポリシーおよび関連する属性の表示 34.7. sched_attr 構造体 35. プリエンプション状態の表示 Expand section "35. プリエンプション状態の表示" Collapse section "35. プリエンプション状態の表示" 35.1. プリエンプション 35.2. プロセスのプリエンプション状態の確認 36. chrt ユーティリティーを使用したプロセス優先度の設定 Expand section "36. chrt ユーティリティーを使用したプロセス優先度の設定" Collapse section "36. chrt ユーティリティーを使用したプロセス優先度の設定" 36.1. chrt ユーティリティーを使用したプロセス優先度の設定 36.2. chrt ユーティリティーのオプション 36.3. 関連情報 37. ライブラリー呼び出しを使用したプロセスの優先度の設定 Expand section "37. ライブラリー呼び出しを使用したプロセスの優先度の設定" Collapse section "37. ライブラリー呼び出しを使用したプロセスの優先度の設定" 37.1. 優先度を設定するためのライブラリー呼び出し 37.2. ライブラリー呼び出しを使用したプロセス優先度の設定 37.3. ライブラリー呼び出しを使用したプロセス優先度パラメーターの設定 37.4. プロセスのスケジューリングポリシーおよび関連する属性の設定 37.5. 関連情報 38. リアルタイムカーネルの問題と解決策のスケジューリング Expand section "38. リアルタイムカーネルの問題と解決策のスケジューリング" Collapse section "38. リアルタイムカーネルの問題と解決策のスケジューリング" 38.1. リアルタイムカーネルのスケジューリングポリシー 38.2. リアルタイムカーネルでのスケジューラーのスロットリング 38.3. リアルタイムカーネルでのスレッド枯渇 法律上の通知 Settings Close Language: 한국어 日本語 简体中文 English Language: 한국어 日本語 简体中文 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: 한국어 日本語 简体中文 English Language: 한국어 日本語 简体中文 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF 第18章 Out of Memory (OOM) 状態の管理 OOM (Out of Memory) は、スワップ領域を含む利用可能なメモリーがすべて割り当てられているコンピューティング状態を指します。通常、これによりシステムがパニックになり、想定どおりに機能しなくなります。 以下では、システムで OOM の状態を回避する手順を説明します。 18.1. 前提条件 システムの root 権限がある。 Previous Next