/proc/meminfoに含まれる情報の大半は、メモリ、バッファ、キャッシュなどのように知ることができます。平均?/proc/meminfoのエントリ
- AnonPagesマップされた
- スラブ
- NFS_Unstable
- バウンス
- VmallocTotal
- VmallocUsed
- VmallocChunk
、私は猫の/ proc/meminfoの
/proc/meminfoに含まれる情報の大半は、メモリ、バッファ、キャッシュなどのように知ることができます。平均?/proc/meminfoのエントリ
、私は猫の/ proc/meminfoの
この情報の標準ソースは/usr/src/linux/Documentation/filesystems/proc.txtです。具体的には、
AnonPages: Non-file backed pages mapped into userspace page tables Mapped: files which have been mmaped, such as libraries Slab: in-kernel data structures cache NFS_Unstable: NFS pages sent to the server, but not yet committed to stable storage Bounce: Memory used for block device "bounce buffers" VmallocTotal: total size of vmalloc memory area VmallocUsed: amount of vmalloc area which is used VmallocChunk: largest contigious block of vmalloc area which is free
VMallocTotalから、Linuxのコマンドの出力について話しています - メモリの総量、キロバイト単位で、合計の は仮想アドレス空間を割り当てました。 VMallocUsed - 使用された仮想アドレス のアドレス空間の合計量(キロバイト単位)、 です。 VMallocChunk - 利用可能な仮想アドレス アドレス空間の キロバイト内の最大連続ブロック 。
次のように私の理解です。
そして、私はこれらの数字が矛盾した値を理解して表示することは難しいと思います。
MemTotal
= MemFree + Active + Inactive + Slab + PageTables + VmallocUsed + X
(X : alloc_pages() (get_free_pages(), etc))
しかし、最近のカーネルのvmallocused値が間違っている可能性があります。 これは、VM_ALLOR領域以外のVM_IOREMAP、VM_MAPなどのVM_xxx領域をカウントするためです。
VM_IOREMAP領域は、カーネルの メモリ管理の外にある可能性があるメモリをマッピングすることができます。したがって、上記の式は正確ではない可能性があります。
あなたが行うことができ、次のいずれか自分ですべてのエントリとフィルタを整理するために
非アクティブ+アクティブ
= Buffers + Cached + SwapCached + AnonPages
AnonPages
= /proc/*/task/*/smaps anonymous area all sum
(anonymous: no name|[heap]|/dev/zero|/dev/shm/*|[stack])
これらの数字に一致することができました。何か手掛かりがある場合はhereを参照してください。
総ページキャッシュ
= Buffers + Cached + SwapCached
スラブ
= SReclaimable + SUnreclaim
代替リンクkernel.orgがダウンしている間:https://github.com/torvalds/linux/blob/master/ドキュメンテーション/ファイルシステム/ proc.txt – fennec