Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

E.3.9.5. /proc/sys/vm/

このディレクトリーは、Linux カーネルの仮想メモリー(VM)サブシステムの設定を容易にします。カーネルは仮想メモリーを広範囲に使用し、一般的にスワップ領域と呼ばれます。
以下のファイルは、一般的に /proc/sys/vm/ ディレクトリーにあります。
  • block_dump: 有効な場合はブロック I/O デバッグを設定します。ファイルに実行された読み取り/書き込みおよびブロックのダーティー操作はすべて、それに応じてログに記録されます。これは、ラップトップのバッテリーコンサービス向けに、ディスクのスピンアップとスピンダウンを診断する場合に便利です。block_dump が有効になっている場合のすべての出力は、dmesg で取得できます。デフォルト値は 0 です。
    klogd デーモンの停止
    block_dump がカーネルのデバッグと同時に有効になっている場合は、block_dump によって発生する間違ったディスクアクティビティーが生成されるため、klogd デーモンを停止するのは困難です。
  • dirty_background_ratio: pdflush デーモンを介して、合計メモリーの割合でダーティーデータのバックグラウンドライトバックを開始します。デフォルト値は 10 です。
  • dirty_expire_centisecs: ダーティーインメモリーデータが書き込みアウトの対象となるのに十分な古いタイミングを定義します。この間隔よりもダーティーなインメモリーであったデータは、次に pdflush デーモンがウェイクアップしたときに書き出されます。デフォルト値は 3000 で、1 秒の 100 分の 1 で表されます。
  • dirty_ratio: pdflush でダーティーデータのジェネレーターの合計メモリーの割合で、ダーティーデータのアクティブなライトバックを開始します。デフォルト値は 20 です。
  • dirty_writeback_centisecs: pdflush デーモンのウェイクアップの間隔を定義します。これは、ダーティーなインメモリーデータをディスクに定期的に書き込みます。デフォルト値は 500 で、1 秒の 100 分の 1 で表されます。
  • laptop_mode: できるだけディスクスペースを下げてハードディスクを起動する必要がある回数を最小限に抑えるため、ラップトップでバッテリー電源を確保します。これにより、将来のすべての I/O プロセスを組み合わせてスピンアップする頻度を削減することで、効率性が向上します。デフォルト値は 0 ですが、ラップトップ上のバッテリーが使用されている場合に自動的に有効になります。
    この値は、ユーザーにバッテリー電源が有効になっていると、auid デーモンによって自動的に制御されます。ラップトップが ACPI(Advanced Configuration and Power Interface)仕様をサポートする場合は、ユーザーの変更や対話は必要ありません。
    詳細は、以下のインストール済みドキュメントを参照してください。
    /usr/share/doc/kernel-doc-kernel_version/Documentation/laptop-mode.txt
  • max_map_count: プロセスが持つことのできるメモリーマップエリアの最大数を設定します。多くの場合、65536 のデフォルト値が適切です。
  • min_free_kbytes - Linux 仮想マシン(仮想メモリーマネージャー)を強制して、最小キロバイト数をそのまま保持します。仮想マシンはこの数値を使用して、システムの lowmem ゾーンごとに pages_min 値を計算します。デフォルト値は、マシンの合計メモリーに対応します。
  • nr_hugepages: カーネルに設定された hugetlb ページの現在の数を示します。
    詳細は、以下のインストール済みドキュメントを参照してください。
    /usr/share/doc/kernel-doc-kernel_version/Documentation/vm/hugetlbpage.txt
  • nr_pdflush_threads: 現在実行している pdflush デーモンの数を指定します。このファイルは読み取り専用であるため、ユーザーが変更することはできません。I/O 負荷が大きい場合、カーネルによってデフォルト値が 2 に増えます。
  • overcommit_memory: 大規模なメモリー要求が許可または拒否される条件を設定します。以下の 3 つのモードを使用できます。
    • 0 - カーネルは、利用可能なメモリー量と、フラットな無効なリクエストに見積もって、コミット処理でヒューリスティックなメモリーを実行します。ただし、メモリーは正確なアルゴリズムではなくヒューリスティックで割り当てられるため、この設定により、システムで利用可能なメモリーをオーバーロードできることがあります。これはデフォルトの設定です。
    • 1 - カーネルは、コミット処理にメモリーを実行しません。この設定では、メモリーのオーバーロードの可能性は増大するため、メモリー集約されたタスク(一部の標準ソフトウェアによって実行されるタスクなど)に対してパフォーマンスが向上します。
    • 2 - カーネルは、割り当てられたスワップ領域の合計と、/proc/sys/vm/overcommit_ratio で指定された物理 RAM のパーセンテージを超過するメモリーの要求に障害が発生します。この設定は、メモリーのオーバーコミットのリスクが少なくなるべく最適です。
      この設定の使用
      この設定は、物理メモリーよりも大きい swap 領域を持つシステムにのみ推奨されます。
  • overcommit_ratio: /proc/sys/vm/overcommit_memory2 に設定されている場合に考慮される物理 RAM のパーセンテージを指定します。デフォルト値は 50 です。
  • page-cluster: 1 回試行で読み込まれたページ数を設定します。16 ページに実際に関連する 3 のデフォルト値は、ほとんどのシステムに適しています。
  • swappiness: スワップするマシンのサイズを決定します。値が大きいほどスワップが増えます。パーセンテージでデフォルト値は 60 に設定されます。
カーネルベースの全ドキュメントは、ローカルにインストールされている場所にあります。
/usr/share/doc/kernel-doc-kernel_version/Documentation/。これには追加情報が含まれています。