第3章 外部のカーネルパラメーターに対する重要な変更

本章では、システム管理者向けに Red Hat Enterprise Linux 7.4 に含まれるカーネルの重要な変更点についてまとめています。これらの変更には、proc エントリー、sysctlsysfs デフォルト値、boot パラメーター、カーネル設定オプションの追加や更新、また注目すべき動作の変更などが含まれます。

更新された /proc/sys/kernel エントリー

hung_task_panic
応答しないタスクが検出されたときにカーネルの動作を制御します。このファイルは CONFIG_DETECT_HUNG_TASK が有効な場合に使用されます。
形式: { "0" | "1" }
0 - 処理が続行されます (デフォルトの動作)。
1 - すぐにパニックが発生します。
hung_task_check_count
チェックされたタスクの数の上限を提供します。このファイルは、CONFIG_DETECT_HUNG_TASK が有効な場合に使用されます。
hung_task_timeout_secs
間隔をチェックします。D 状態のタスクがこの値よりも長い時間スケジュールされない場合に警告が報告されます。このファイルは、CONFIG_DETECT_HUNG_TASK が有効な場合に使用されます。
0 - 無制限のタイムアウト。チェックは実行されません。
hung_task_warning
チェック間隔の間に報告する警告の最大数を提供します。この値に達すると、それ以上警告は報告されません。このファイルは、CONFIG_DETECT_HUNG_TASK が有効な場合に使用されます。
-1 - 無限の数の警告を報告します。
panic_on_rcu_stall
1 に設定された場合は、RCU ストール検出メッセージの都に panic() 関数を呼び出します。これは、vmcore を使用した RCU ストールの原因を定義する場合に役に立ちます。
0 - RCU ストールが発生した場合にパニックが発生しません (デフォルトの動作)。
1 - RCU ストールメッセージの出力後にパニックが発生します。

更新された /proc/sys/user エントリー

/proc/sys/user ディレクトリーのファイルを使用して、名前空間と、ユーザーごとに名前空間の制限がある他のオブジェクトの数のデフォルト制限を上書きできます。これらの制限の目的は、誤作動で大量のオブジェクトを作成しようとするプログラムを停止することです。これらの制限のデフォルト値は、正常に動作しているプログラムがその制限に到達できないよう調整されます。
ユーザーごとの名前空間オブジェクトの作成は、オブジェクトを作成し、そのユーザー名前空間のユーザーごとの制限未満であることが検証されたユーザー名前空間のユーザーに対して行われます。このようなオブジェクトの作成は、ユーザー名前空間で行われ、ユーザー名前空間を作成したすべてのユーザーに対しても行われます。
このように作成されたオブジェクトを再帰的にカウントすることにより、ユーザー名前空間の作成でユーザーが現在の制限を超えないようになります。
/proc/sys/user の更新されたファイルは以下のとおりです。
max_cgroup_namespaces
現在のユーザー名前空間のどのユーザーでも作成できる cgroup 名前空間の最大数。
max_ipc_namespaces
現在のユーザー名前空間のどのユーザーでも作成できる ipc 名前空間の最大数。
max_mnt_namespaces
現在のユーザー名前空間のどのユーザーでも作成できる mount 名前空間の最大数。
max_net_namespaces
現在のユーザー名前空間のどのユーザーでも作成できる network 名前空間の最大数。
max_pid_namespaces
現在のユーザー名前空間のどのユーザーでも作成できる pid 名前空間の最大数。
max_user_namespaces
現在のユーザー名前空間のどのユーザーでも作成できるユーザー名前空間の最大数。
max_uts_namespaces
現在のユーザー名前空間のどのユーザーでも作成できるユーザー名前空間の最大数。

カーネルのパラメーター

acpi_force_table_verification [HW,ACPI]
初期の段階でテーブルチェックサムの検証を有効にします。デフォルトでは、x86 の初期マッピングサイズの制限のため無効になります。
acpi_no_auto_ssdt [HW,ACPI]
Secondary System Description Table (SSDT) の自動ロードを無効にします。
acpi_no_static_ssdt [HW,ACPI]
初期起動時に静的な SSDT のインストールを無効にします。デフォルトでは、RSDT/XSDT に含まれる SSDT は自動的にインストールされ、/sys/firmware/acpi/tables ディレクトリーに格納されます。
このオプションを使用すると、この機能が無効になります。このオプションを指定しても、SSDT テーブルを /sys/firmware/acpi/tables/dynamic ディレクトリーにインストールする動的なテーブルインストールは影響を受けません。
irqaffinity= [SMP] Set the default irq affinity mask
形式: <cpu number>,..., <cpu number>
または
<cpu number>-<cpu number>
正の範囲を昇順で使用したり、組み合わせたりできます。
<cpu number>,...,<cpu number>-<cpu number>
nokaslr [KNL]]
初期起動時に静的な SSDT のインストールを無効にします。デフォルトでは、RSDT/XSDT に含まれる SSDT は自動的にインストールされ、/sys/firmware/acpi/tables ディレクトリーに格納されます。
CONFIG_RANDOMIZE_BASE が設定された場合に、カーネルおよびモジュールベースオフセットの Address SpaceLayout Randomization (ASLR) を無効にします。
nohibernate
ハイバネーションと再開を無効にします。
crash_kexec_post_notifiers
panic-notifiers を実行し、kmsg をダンプしたあとに、kdump を実行します。
[PCI] hpbussize=nn
ホットプラグブリッジ以下のバスに予約された追加バス最小数を提供します。デフォルト値は 1 です。
pcie_port_pm=[PCIE]
ホットプラグブリッジ以下のバスに予約された追加バス最小数を提供します。デフォルト値は 1 です。
pcie_port_pm=[PCIE]
PCIe ポートの電源管理処理:
形式: { "off" | "force" }
off - すべての PCIe ポートの電源管理を無効にします。
1 - すべての PCIe ポートの電源管理を有効にします。
sunrpc.svc_rpc_per_connection_limit=[NFS,SUNRPC]
サーバーが単一の接続から同時に処理する要求の数を制限します。デフォルト値は 0 (制限なし) です。