第3章 外部のカーネルパラメーターに対する重要な変更
本章では、システム管理者向けに、Red Hat Enterprise Linux 7.5 に同梱されるカーネルにおける重要な変更の概要について説明します。この変更には、
proc
エントリー、sysctl
および sysfs
のデフォルト値、boot パラメーター、カーネル設定オプションの追加や更新、注目すべき動作の変更などが含まれます。
カーネルパラメーター
- amd_iommu_intr = [HW,X86-64]
- 次の
AMD IOMMU
割り込み再マッピングモードのいずれかを指定します。レガシー - レガシー割り込み再マッピングモードを使用します。vapic - 仮想 APIC モードを使用します。これにより、IOMMU
がゲストに直接割り込みを挿入できるようになります。このモードにはkvm-amd.avic=1
が必要です。これは、IOMMU HW
サポートが存在する場合のデフォルトです。 - debug_pagealloc = [KNL]
CONFIG_DEBUG_PAGEALLOC
が設定されている場合、このパラメーターは起動時にこの機能を有効にします。これはデフォルトでは無効になります。デバッグページ割り当て
に大量のメモリーが割り当てられるのを避けるには、ブート時にページ割り当てを有効にしないでください。そうすれば、オペレーティングシステムは、CONFIG_DEBUG_PAGEALLOC
を使用せずに構築されたカーネルと同様に動作します。この機能を有効にするには、debug_pagealloc = on
を使用します。- ftrace_graph_max_depth = uint[FTRACE]
- このパラメーターは関数グラフトレーサーで使用されます。これは、関数をトレースする最大の深さを定義します。その値は、
tracefs
トレースディレクトリー内のmax_graph_ Depth
ファイルによって実行時に変更できます。デフォルト値は 0 で、制限が設定されていないことを意味します。 - init_pkru = [x86]
- すべてのプロセスのデフォルトのメモリー保護鍵の権限レジスターの内容を指定します。デフォルト値は 0x55555554 で、pkey 0 以外のすべてへのアクセスが禁止されます。ブート後に debugfs ファイルシステムの値をオーバーライドできます。
- nopku = [x86]
- 一部の Intel CPU にあるメモリー保護キー CPU 機能を無効にします。
- mem_encrypt = [X86-64]
- AMD Secure Memory Encryption (SME) 制御を提供します。有効な引数は、on、off です。デフォルト設定はカーネル設定オプションによって異なります。on : CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=yoff : CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=nmem_encrypt=on: SME をアクティブ化するmem_encrypt=off: SME をアクティブ化しない
Spectre および Meltdown の問題を軽減するカーネルパラメーター
- kpti = [X86-64]
- カーネルページテーブルの分離を有効にします。
- nopti = [X86-64]
- カーネルページテーブルの分離を無効にします。
- nospectre_v2 = [X86]
- Spectre バリアント 2 (間接分岐スペキュレーション) の脆弱性に対するすべての緩和策を無効にします。このオプションを使用すると、オペレーティングシステムによってデータ漏洩が許可される可能性があります。これは spectre_v2=off と同等です。
- spectre_v2 = [X86]
- Spectre バリアント 2 (間接分岐スペキュレーション) の脆弱性の軽減を制御します。有効な引数は、on、off、auto です。on: 無条件に有効にするoff: 無条件に無効にするauto: カーネルが CPU モデルが脆弱かどうかを検出します
on
を選択すると、CPU、利用可能なマイクロコード、CONFIG_RETPOLINE 設定オプション、カーネルがビルドされたコンパイラーに応じて、実行時に緩和方法が選択されます (auto
も可能です)。特定の軽減策を手動で選択することもできます。retpoline: 間接分岐を置き換えますibrs: インテル: Indirect Branch Restricted Speculation (カーネル)ibrs_always: Intel: Indirect Branch Restricted Speculation (カーネルおよびユーザー空間)このオプションを指定しないことは、spectre_v2=auto と同等です。
/proc/sys/net/core エントリーを更新しました
- dev_weight_rx_bias
RFS
やaRFS
などのRPS
処理は、softirq サイクルnetdev_budget
ごとにドライバーの登録済みNAPI
ポーリング関数と競合します。このパラメーターは、RX SoftIRQ サイクル中にRPS
ベースのパケット処理に費やされる、設定されたnetdev_budget
の割合に影響します。また、現在のdev_weight
が、ネットワークスタックの送信側での受信時の非対称 CPU ニーズに適応できるようになります。このパラメーターは CPU ごとに有効です。決定はdev_weight
に基づいて行われ、乗算方法 (dev_weight * dev_weight_rx_bias) で計算されます。デフォルト値は 1 です。- dev_weight_tx_bias
- このパラメーターは、TX Softirq サイクル中に処理できるパケットの最大数を調整します。これは CPU ごとに効果があり、非対称ネットスタック処理のニーズに合わせて現在の
dev_weight
をスケーリングできます。TX Softirq 処理が CPU を大量に消費しないようにしてください。決定はdev_weight
に基づいて行われ、乗算方法 (dev_weight * dev_weight_rx_bias) で計算されます。デフォルト値は 1 です。