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

本章では、システム管理者向けに Red Hat Enterprise Linux 7.3 に含まれるカーネルの重要な変更点についてまとめています。これらの変更には、proc エントリー、sysctlsysfs デフォルト値、boot パラメーター、カーネル設定オプションの追加や更新、また注目すべき動作の変更などが含まれます。
apic_extnmi=[APIC,X86]
外部のノンマスカブル割り込み (NMI: Nonmaskable Interrupt) の配信設定を行います。
形式: { bsp (default) | all | none }
bsp: 外部 NMI は CPU 0 にのみ配信されます。
all: 外部 NMI は CPU 0 のバックアップとして全 CPU にブロードキャストされます。
none: 外部 NMI は全 CPU に対してマスキングされます。これは、ダンプキャプチャーカーネルが NMI により割り込まれないようにする際に役立ちます。
bau=[X86_UV]: SGI UV 上の BAU の有効化
デフォルトの動作は BAU を無効にします (bau=0)。
形式: { "0" | "1" }
0 - BAU を無効にします。
1 - BAU を有効にします。
指定なし - BAU を無効にします。
cpu_init_udelay=N [X86]
プロセッサーの起動の際に APIC INIT のアサートとディアサートの間で N ミクロ秒の遅延を設定します。この遅延は、起動やサスペンド状態からの再開などオンラインの CPU すべてで発生します。
デフォルト値: 10000
hardlockup_all_cpu_backtrace=[KNL]
hard-lockup detector により、全 CPU のバックトレースが生成されます。
形式: 整数
intel_iommu=[DMAR] Intel iommu ドライバー (DMAR) オプション [...]
ecs_off [Default Off]
拡張テーブル自体と PASID の両方のサポートがあるとハードウェアで通知されている場合に、デフォルトでは拡張コンテキストテーブルはサポートされます。このオプションを設定すると、サポートがあるとされるハードウェア上でも拡張テーブルは使用されません。
kernelcore=nn[KMG] [KNL,X86,IA-64,PPC]
パラメーター
kernelcore=[KNL,X86,IA-64,PPC]
形式: nn[KMGTPE] | "mirror"
メモリーの容量 nn[KMGTPE] を指定する代わりに、「mirror」オプションを指定できます。「mirror」オプションが指定されている場合は、ミラーリングされたメモリーは、移動ができない割り当てに使用され、残りのメモリーは移動可能なページに使用されます。nn[KMGTPE] も「mirror」オプションも排他的で、nn[KMGTPE] と「mirror」オプションを同時に指定することはできません。
libata.force=[LIBATA]
* [no]ncqtrim: キューにある DSM TRIM をオフにします。
memmap=nn[KMG]!ss[KMG] [KNL,X86]
特定のメモリーを保護するようにマークします。使用するメモリーの領域 (ss から ss+nn)。メモリーの領域は、e820 type 12 (0xc) としてマークする必要があります。サポートされているメモリーは NVDIMM または ADR です。
module_blacklist=[KNL]
コンマで区切られたモジュール一覧は読み込みません。この機能は、問題のあるモジュールのデバッグに役立ちます。
nfs4.layoutstats_timer=[NFSv4.2]
カーネルが pNFS メタデータサーバーにレイアウト統計を送信する速度を変更します。
この値を 0 に設定すると、カーネルはレイアウトドライバーが設定した値を使用します。0 以外の場合は、レイアウト統計を転送する最小の間隔 (秒) を指定します。
nmi_watchdog=[KNL,BUGS=X86]
SMP カーネルのデバッグ機能
形式: [panic,][nopanic,][num]
有効な数値: 0 または 1
0 - nmi_watchdog をオフにします。
1 - nmi_watchdog をオンにします。
nohugeiomap [KNL,x86]
カーネルの大量の I/O マッピングを無効にします。
soft_watchdog
このパラメーターは soft lockup detector の制御に使用することができます。
0 - soft lockup detector を無効にします。
1 - soft lockup detector を有効にします。
soft lockup detector は、自主的に再スケジュールせずに CPU を占有しているスレッドがないかどうか CPU を監視して、watchdog/N のスレッドの実行を阻止します。このメカニズムは、watchdog/N スレッドがウォッチドッグのタイマー機能により起動する際に必要なタイマーの中断に応答する CPU の機能に依存します。これがないと NMI ウォッチドッグが有効な場合に、NMI ウォッチドッグが hard lockup の状況を検出する可能性があります。
watchdog
このパラメーターは、soft lockup detector および、NMI ウォッチドッグが同時に保証する hard lockup detector を無効化/有効化します。
0 - lockup detector 両方を無効にします。
1 - lockup detector 両方を有効にします。
soft_watchdog および nmi_watchdog のパラメーターを使用することで、soft lockup detector および NMI ウォッチドッグは、個別に無効化または有効化することも可能です。たとえば、watchdog パラメーターが読み込まれている場合には、cat /proc/sys/kernel/watchdog コマンドを実行すると、0 か 1 が出力され、soft_watchdog および nmi_watchdog の論理 OR が表示されます。
noxsaveopt [X86]
x86 拡張のレジスターの状態を保存する際に使用する xsaveopt を無効にします。カーネルはフォールバックして xsave を使用し、状態を保存します。xsaveopt が有効なシステムでは xsaveopt はサポートされていますが、xsave は最適化の変更をサポートしないため、このパラメーターを使用して状態を保存するとパフォーマンスが低下します。
noxsaves [X86]
x86 拡張レジスターの状態を圧縮形式の xsave 領域に保存して復元する際に使用する xsaves および xrstors を無効にします。カーネルはフォールバックして xsaveopt および xrstor を使用し、標準形式の xsave 領域に状態を保存して復元します。このパラメーターを使用することで、プロセスごとの xsave 領域は xsaves が有効なシステム上でより多くのメモリーを占有する可能性があります。
nompx [X86]
Intel Memory Protection Extensions (Intel MPX) を無効にします。
この機能に関する詳しい情報は、Documentation/x86/intel_mpx.txt を参照してください。
nowatchdog [KNL]
soft-lockup および NMI ウォッチドッグ (hard-lockup) の両方の lockup detector を無効にします。
watchdog_cpumask
この値は、ウォッチドッグの実行に利用可能な CPU はどれかを設定する際に使用します。デフォルトの cpumask は利用可能なコアすべてですが、カーネルの設定で NO_HZ_FULL が有効化されており、コアが nohz_full=boot の引数で指定されている場合には、これらのコアはデフォルトで除外されます。このマスクには、オフラインのコアを含めることができます。コアがオンラインになった場合には、ウォッチドッグがこのマスクの値をベースに起動します。カーネルがこれらのコアでロックアップされている可能性がある場合に、nohz_full が指定されているときのみ、この値を編集してデフォルトでウォッチドッグを実行していないコアを再有効化することができます。引数の値は、cpumask の標準の cpulist 形式です。
例:
コア 0、2、3、4 でウォッチドッグを有効にするには以下のコマンドを使用します。
echo 0,2-4 /proc/sys/kernel/watchdog_cpumask
watchdog_thresh
この値は、hrtimer および NMI イベントの頻度、soft および hard lockup のしきい値を設定する際に使用します。デフォルトのしきい値は 10 秒です。また、softlockup のしきい値は 2 * watchdog_thresh です。このパラメーターを 0 に設定すると、lockup の検出が無効になります。
schedstats=[KNL,X86]
スケジューラーの統計を有効化または無効化します。
許容値は、enable および disable です。
この機能は、スケジューラーで少しオーバーヘッドが発生しますが、デバッグやパフォーマンスの調整に役立ちます。
usbcore.usbfs_snoop_max=[USB]
各 USB Request Block (URB) で監視 (snoop) する最大のバイト数を設定します。デフォルト値は 65536 です。
usb-storage.quirks=[...]
j = NO_REPORT_LUNS
report luns コマンドは使用せず UAS のみを使用します。
workqueue.watchdog_thres
CONFIG_WQ_WATCHDOG が設定されている場合は、デバッグできるように作業キューは停滞している状態を警告して、内部の状態をダンプします。値が 0 の場合は、作業キューの停滞状況の検出を無効にします。それ以外の場合は、停滞時間のしきい値 (秒) を表します。デフォルト値は 30 で、適切な sysfs ファイルに書き込むことでランタイム時に更新できます。
workqueue.power_efficient
通常、キャッシュの場所が理由でパフォーマンスが向上されるので CPU 別の作業キューが推奨されますが、バインドされていない作業キューよりも電力を消費します。このカーネルパラメーターを指定すると、電源消費の原因と見られる CPU 別の作業キューをバインドされてないキューに移動して、パフォーマンスのオーバーヘッドを少なく抑えつつ、電源消費を大幅に下げることができます。
perf_event_paranoid
CAP_SYS_ADMIN の権限のないユーザーによるパフォーマンスイベントシステムの使用を制御します。
デフォルト値は 1 です。
-1 - 全ユーザーによる全イベントの使用を許可します。
>=0 - CAP_IOC_LOCK のないユーザーによる Raw トレースポイントアクセスを却下します。
>=1 - CAP_SYS_ADMIN のないユーザーによる Raw トレースポイントアクセスを却下します。
>=2 - CAP_SYS_ADMIN のないユーザーによるカーネルプロファイルを却下します。
/proc/sys/fs
pipe-user-pages-hard:
管理者権限のないユーザーがパイプに割り当て可能なページの最大数を設定します。
この上限に達すると、使用率が上限を下回るまで新しいパイプを割り当てることができません。0 を設定すると制限が適用されません。デフォルト設定は 0 です。
pipe-user-pages-soft:
パイプのサイズが 1 つのページに制限される前に、管理者権限のないユーザーがパイプに割り当て可能なページの最大数を設定します。この上限に達すると、メモリーの合計使用率を制限するためにこのユーザーは単一のページにしか新しいパイプを割り当てることができなくなります。使用率が上限を下回らないと fcntl() 関数を使用してページの合計数を増加しようとすると却下されます。デフォルト値は、最大 1024 のパイプまで割り当てることができます。0 に設定されていると制限は適用されません。
/proc/sys/kernel
hardlockup_all_cpu_backtrace:
この値は、デバッグ情報の今後の収集に関する hard lockup detector の動作を制御します。この値が有効な場合は、アーキテクチャー固有の全 CPU スタックのダンプが開始されます。
0 - 何もしません。これはデフォルトの動作です。
1 - 検出がオンになっており、デバッグ情報をより多く取得します。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。