Linuxサーバーでメモリの情報を取得する際のコマンドを紹介します。
合わせてfreeコマンドの見方についても説明します。
/proc/meminfoを参照する
[root@cent74 ~]# cat /proc/meminfo
MemTotal: 65689956 kB
MemFree: 1293680 kB
MemAvailable: 41664540 kB
Buffers: 173400 kB
Cached: 36228152 kB
SwapCached: 55272 kB
Active: 43102368 kB
Inactive: 15402836 kB
Active(anon): 20574012 kB
Inactive(anon): 1636816 kB
Active(file): 22528356 kB
Inactive(file): 13766020 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 67108860 kB
SwapFree: 66958344 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 22052076 kB
Mapped: 45524 kB
Shmem: 107176 kB
Slab: 5145472 kB
SReclaimable: 4612420 kB
SUnreclaim: 533052 kB
KernelStack: 13824 kB
PageTables: 51536 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 99953836 kB
Committed_AS: 20247536 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 459792 kB
VmallocChunk: 34358900732 kB
HardwareCorrupted: 0 kB
AnonHugePages: 17819648 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 361200 kB
DirectMap2M: 12126208 kB
DirectMap1G: 56623104 kB
代表的な項目の意味は以下の通りです。
MemTotal | 物理メモリの総容量(KB) |
MemFree | 未使用の物理メモリ容量(KB) |
Buffers | ファイルバッファに使用されているメモリ量(KB) |
Cached | キャッシュメモリに使用されているメモリ容量(KB) |
freeコマンドの見方
わかりやすい様に「-m」オプション(表示をMB単位に変換)を付けた結果です。
[root@cent74 ~]# free -m
total used free shared buff/cache available
Mem: 64150 22313 1261 104 40575 40687
Swap: 65535 146 65389
各項目の説明です。
total | メモリ総容量 |
used | メモリ使用量(実際にプロセスで使用されているメモリ量) |
free | 全く使われていない未割り当てのメモリ量 |
shared | 共有メモリで使用しているメモリ量 |
buff/cache | ファイルバッファ+キャッシュメモリに使われているメモリ量 |
available | プロセスが利用できるメモリサイズ |
buff/cache はOSが自動的にメモリを割り当てるので大きなサイズを確保していますが、プロセスがメモリを多く確保した時には、buff/cache のメモリ確保量が小さくなり、プロセス側にメモリが割り当てられます。