22

/proc/meminfoに含まれる総メモリ、バッファ、キャッシュなどのほとんどの情報を理解できます。以下にリストされているようなあまり明白でない情報は何を意味するのか教えていただけますか?

  • アノンページ
  • マッピング済み
  • スラブ
  • NFS_不安定
  • 跳ねる、弾む
  • Vmalloc合計
  • Vmalloc使用
  • VmallocChunk

誰かが不思議に思っているなら、私は Linux コマンドcat /proc/meminfoの出力について話している

4

3 に答える 3

35

この情報の正規のソースは/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
于 2009-03-18T17:10:25.703 に答える
16

私の理解は次のとおりです。
そして、私はこれらの数値が理解しにくく、一貫性のない値を示していることに同意します。

  • MemTotal

    = MemFree + Active + Inactive + Slab + PageTables + VmallocUsed + X
    (X : alloc_pages() (get_free_pages(), etc))
    

    しかし、最近のカーネルのvmallocused値は間違っている可能性があります。これは、VM_ALLOC領域以外のVM_IOREMAP、VM_MAP、...などのVM_xxx領域をカウントするためです。

    VM_IOREMAP領域は、カーネルのメモリ管理の外部にある可能性のあるマッピングメモリである可能性があるため、上記の式は正確ではないか、完全に間違っている可能性があります。

    次のいずれかを実行できます。

    • / proc / vmallocinfoをチェックして、すべてのエントリを分類し、自分でフィルタリングします。
    • fs / proc / mmu.c:get_vmalloc_info()を変更して、if(vma-> flags&VM_ALLOC)の場合にのみ領域をカウントする
  • アクティブ+非アクティブ

     = Buffers + Cached + SwapCached + AnonPages
    
  • AnonPages

     = /proc/*/task/*/smaps anonymous area all sum
     (anonymous: no name|[heap]|/dev/zero|/dev/shm/*|[stack])
    

    私はこれらの数字を一致させることができませんでしたが。ここを参照して、何か手がかりがあれば私を助けてください。

  • 合計PageCache

     = Buffers + Cached + SwapCached
    
  • スラブ

     = SReclaimable + SUnreclaim
    
于 2011-07-31T00:08:12.473 に答える