Red Hat Training

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

E.2.18. /proc/meminfo

これは、システムの RAM 使用率に関する多くの有用な情報を報告するため、/proc/ ディレクトリー内で一般的に使用されるファイルの 1 つです。
以下の /proc/meminfo 仮想ファイルのサンプルは、2 GB の RAM と 1 GB のスワップ領域が搭載されているシステムです。
MemTotal:        1921988 kB
MemFree:         1374408 kB
Buffers:           32688 kB
Cached:           370540 kB
SwapCached:            0 kB
Active:           344604 kB
Inactive:          80800 kB
Active(anon):      22364 kB
Inactive(anon):        4 kB
Active(file):     322240 kB
Inactive(file):    80796 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
SwapFree:        1048572 kB
Dirty:                48 kB
Writeback:             0 kB
AnonPages:         22260 kB
Mapped:            13628 kB
Shmem:               196 kB
Slab:              91648 kB
SReclaimable:      34024 kB
SUnreclaim:        57624 kB
KernelStack:        2880 kB
PageTables:         3620 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2009564 kB
Committed_AS:     134216 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       12276 kB
VmallocChunk:   34359712840 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8064 kB
DirectMap2M:     2088960 kB
ファイルにはキロバイト(kB、1 kB は 1000 B)が表示されますが、実際には kibibytes になります(1 KiB は 1024 B になります)。/proc/meminfo におけるこの意図は知られていますが、従来の懸念のために修正されていません。プログラムは /proc/meminfo に依存して "kB" 文字列でサイズを指定します。
/proc/meminfo の情報の多くは、free コマンド、top コマンド、および ps コマンドで使用されます。実際、free コマンドの出力は、/proc/meminfo の内容と構造と似ています。ただし、/proc/meminfo 自体には詳細が記載されています。
  • MemTotal - kibibytes 内の使用可能な RAM の合計量。これは、予約済みビットとカーネルバイナリーコードの数を引いた物理 RAM です。
  • MemFree - kibibytes 内の物理 RAM の容量は、システムが未使用のままです。
  • Buffers - raw ディスクブロックの一時ストレージの量(kibibytes)。
  • Cached - キャッシュメモリーとして使用される物理メモリーの容量(kibibytes)。
  • SwapCached - kibibytes では、swap に移動した後、メインメモリーに戻りますが、引き続き swap ファイル内に残ります。メモリーを再度スワップに移動する必要がないため、I/O が保存されます。
  • Active - キビバイトで、より最近使用され、絶対に必要でない限り、通常は回収されません。
  • Inactive - 最近使用されたメモリーの量(kibibytes では使用されず、他の目的で回収可能)。
  • Active(anon) - 匿名メモリーおよび tmpfs/shmem メモリーの量(kibibytes ではアクティブ、システムが最後に swap に移動された後にアクティブ使用であった)。
  • Inactive(anon) - エビクションの候補である kibibytes の匿名および tmpfs/shmem メモリーの量。
  • Active(file) - ファイルキャッシュメモリーの量(kibibytes 内)、またはシステムが最後に回収された後にアクティブ使用であったり、アクティブ使用であったりします。
  • Inactive(file) - ディスクから新たに読み込まれるファイルキャッシュメモリー、kibibytes の量、または回収を行う候補です。
  • Unevictable - ユーザープログラムによってメモリーにロックされているため、ページアウトコードによって検出されるメモリーの量をページアウトコードで検出します。
  • Mlocked - ユーザープログラムによってメモリーにロックされているためにエビクトできないメモリーの合計量(kibibytes)。
  • SwapTotal - kibibytes 内で利用可能な swap の合計量。
  • SwapFree - kibibytes 内の空きスワップの合計量。
  • Dirty - kibibytes 内のメモリーの合計量。ディスクへの書き込みを待機しています。
  • Writeback - kibibytes 内のメモリーの合計量。これは、ディスクにアクティブに書き戻されます。
  • AnonPages - ファイルでサポートされておらず、ユーザー空間ページのテーブルにマップされるページで使用されるメモリーの合計量(kibibytes)。
  • Mapped - ライブラリーなど、mmaped ファイルに使用されるメモリー(kibibytes 単位)。
  • Shmem - 共有メモリー(shmem)および tmpfs によって使用されるメモリーの合計量(kibibytes)。
  • Slab - カーネルが独自の使用のためにデータ構造をキャッシュするために使用されるメモリーの合計量(kibibytes 単位)。
  • SReclaimable - キャッシュなど、回収できる Slab の一部です。
  • SUnreclaim - メモリーがない場合でも、Slab の一部で回収できません。
  • KernelStack - システムの各タスクに対して実行されるカーネルスタックの割り当てで使用されるメモリーの量(kibibytes)。
  • PageTables - 最低ページテーブルレベル専用のメモリーの合計量(kibibytes)。
  • NFS_Unstable - サーバーに送信される NFS ページの量(kibibytes)は、まだ安定したストレージにコミットされていない。
  • Bounce - ブロックデバイス「bounce buffer」に使用されるメモリーの量(kibibytes)。
  • WritebackTmp - FUSE が一時的なライトバックバッファーに使用するメモリーの量(kibibytes)。
  • CommitLimit - オーバーコミット比(vm.overcommit_ratio)に基づいてシステムで現在利用可能なメモリーの合計量。この制限は、厳密なオーバーコミットアカウンティングが有効にされている場合にのみ準拠されます( vm.overcommit_memoryのモード 2)。CommitLimit 以下の式で計算されます。
     ([total RAM pages] - [total huge TLB pages]) * overcommit_ratio
    ───────────────────────────────────────────────────────────────── + [total swap pages]
                               100
    
    たとえば、1 GB の物理メモリーと vm.overcommit_ratio が 30 の 7 GB の swap を搭載したシステムでは、7.3 GB が CommitLimit になります。
  • Committed_AS - ワークロードを完了すると予測されるメモリーの合計量(kibibytes)。この値は、最悪の場合のシナリオ値を表し、スワップメモリーも含まれます。
  • VMallocTotal - 割り当てられた仮想アドレス空間の合計メモリー容量(kibibytes 単位)。
  • VMallocUsed - 使用されている仮想アドレス空間のメモリー合計量(kibibytes)。
  • VMallocChunk - 利用可能な仮想アドレス空間の最大連続したメモリーブロック(kibibytes)。
  • HardwareCorrupted - キビバイトのメモリー量(kibibytes)では、ハードウェアによって識別され、カーネルによって外部に設定されたメモリーの量により使用されません。
  • AnonHugePages - ファイルでサポートされておらず、ユーザー空間ページのテーブルにマップされるヒュージページによって使用されるメモリーの合計量(kibibytes)。
  • HugePages_Total - システムの Huge Page の合計数。この数字は、/proc/sys/vm/hugetlb_pool で指定される hugepages とは別のメガバイトセットで Hugepagesize を除算することで派生します。この統計は、x86、gitops、および AMD64 のアーキテクチャーにのみ表示されます。
  • HugePages_Free - システムで利用可能なヒュージページの合計数この統計は、x86、gitops、および AMD64 のアーキテクチャーにのみ表示されます。
  • HugePages_Rsvd - hugetlbfs に予約されている未使用の Huge Page の数。
  • HugePages_Surp : 余分のヒュージページ数。
  • Hugepagesize - kibibytes の各 hugepages ユニットのサイズ。デフォルトでは、32 ビットアーキテクチャー用の uniprocessor カーネルの 4096 KB です。SMP、Hugemem カーネル、および AMD64 の場合、デフォルトは 2048 KB です。gitops アーキテクチャーの場合、デフォルトは 262144 KB です。この統計は、x86、gitops、および AMD64 のアーキテクチャーにのみ表示されます。
  • DirectMap4k - 4 kB ページマッピングのあるカーネルアドレス空間にマップされるメモリーの量(kibibytes)。
  • DirectMap2M - 2 MB ページマッピングを使用してカーネルアドレス空間にマップされるメモリーの量(kibibytes)。