/proc/meminfo
Linuxシステムで利用可能な物理メモリを説明しようとしています(以下の出力を提供します)。現在利用可能なメモリ、ユーザースペースの物理使用量、カーネルデータ構造(vmallocの編集、大容量ページなどを含む)を考慮すると、まだ5GBが不足しています。これは現在meminfoが私に提供するものです:
# cat /proc/meminfo
MemTotal: 362816744 kB
MemFree: 2230348 kB
Buffers: 433636 kB
Cached: 814628 kB
SwapCached: 20688 kB
Active: 723172 kB
Inactive: 539364 kB
Active(anon): 369736 kB
Inactive(anon): 14936 kB
Active(file): 353436 kB
Inactive(file): 524428 kB
Unevictable: 2080 kB
Noswap 292435456 kB
Mlocked: 2080 kB
SwapTotal: 4190964 kB
SwapFree: 4072560 kB
Dirty: 640 kB
Writeback: 0 kB
AnonPages: 292440380 kB
Mapped: 144904 kB
Shmem: 129772 kB
Slab: 568552 kB
SReclaimable: 483816 kB
SUnreclaim: 84736 kB
KernelStack: 13776 kB
PageTables: 785532 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 156197224 kB
Committed_AS: 402420112 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 17872740 kB
VmallocChunk: 34142133244 kB
HardwareCorrupted: 0 kB
HugePages_Total: 28713
HugePages_Free: 14352
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 6144 kB
DirectMap2M: 2017280 kB
DirectMap1G: 367001600 kB
現在のメモリ状態を解釈する方法: MemFree + バッファ + キャッシュ + SwapCached + AnonPages + マッピング + Slab + KernelStack + PageTables + vmalloced メモリ + 大容量ページ
VmallocUsedは、物理メモリに加えてioremapを使用して再マップされた外部物理デバイスのメモリ使用量も発生するため、物理メモリコンポーネントをインポートするために次のことを行いました。
echo "( $(cat /proc/vmallocinfo | grep vmalloc | awk '{print $2}' | paste -s -d "+") )/ 1024" | bc
(提案通りここ)。
したがって、vmallocの物理メモリ消費量は826376KBです。
ラージページ = 28713*2048KB = 58804224KB
これらすべてを通して、私は約5Gの未確認メモリを得ました(MemTotalと比較)。
ここでギャップを説明できる考慮されていない事項がある場合は、お知らせください。