Linux Kernel(2.6)の実装に関するメモ書き

proc/meminfo


Rev.5を表示中。最新版はこちら

cat /proc/meminfoとすることで、現在のメモリの使用状況を確認できる。

表示例
MemTotal:      1001008 kB
MemFree: 200708 kB
Buffers: 43400 kB
Cached: 395740 kB
SwapCached: 0 kB
Active: 557556 kB
Inactive: 178624 kB
HighTotal: 97216 kB
HighFree: 140 kB
LowTotal: 903792 kB
LowFree: 200568 kB
SwapTotal: 2096472 kB
SwapFree: 2096472 kB
Dirty: 224 kB
Writeback: 0 kB
Mapped: 356492 kB
Slab: 47820 kB
CommitLimit: 2596976 kB
Committed_AS: 689048 kB
PageTables: 6192 kB
VmallocTotal: 114680 kB
VmallocUsed: 4560 kB
VmallocChunk: 107264 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 2048 kB



項目
説明
MemTotalメモリ搭載量
MemFree空きメモリ量
BuffersBufferのサイズ。(*1)
CachedPageCacheのサイズ(*2)
Active
最近アクセスされたページ。基本的に解放の対象外。(*3)
Inactive
最近アクセスのないページ。空きメモリが少なくなるとこのページから解放されていく。
HighTotal
HighMemoryの総容量
HighFree
HighMemoryの空き容量
LowTotalLowMemoryの総容量
LowFreeLowMemoryの空き容量
SwapTotalスワップ領域の総容量
SwapFreeスワップ領域の空き容量
Dirty
Writeback
Mapped
Slabスラブアロケータのメモリ使用量
CommitLimit
Committed_ASプロセスが割り当てているアドレス空間の総量(物理ページの割り当て量ではない)。malloc()だけしてまだアクセスしていない領域(仮想アドレス空間だけ割り当てられて物理ページが割り当てられていない状態)も含まれる。(VM的に'commit'されいつでも使用できる状態)
PageTablesPageTableのメモリ使用量
VmallocTotalvmalloc()により確保するアドレス空間の総容量
VmallocUsedvmalloc()で割り当て済みの容量
VmallocChunk


(*1)
各デバイスのbdev->bd_inode->i_mapping->nrpagesの総和から計算

grow_buffers() - Bufferの割り当て
grow_dev_page()
find_or_create_page() - locate or add a pagecache page
add_to_page_cache_lru()
add_to_page_cache()
<-- nrpagesここで加算

BufferはPageCacheとして実装されている
PageCache割り当て時にbdev->bd_inode->i_mappingを指定している

(*2)
get_page_cache_size()-total_swapcache_pages-i.bufferram
スワップキャッシュ、BufferもPageCacheとして実装されているので
その分を引いてある

add_to_page_cache()でnr_pagecacheをインクリメント

PageCacheはmapping単位のRADIX Treeで管理されている。




CommitLimit: 1309308 kB
('vm.overcommit_ratio' * Physical RAM) + Swap で計算される。

vm.overcommit_memoryが2の時、本値をこえてアドレス空間を
commit(allocate)出来なくなる。
デフォルトのモード0だと本値での厳密なチェックは行なわないが、
無茶な割り当てはできないようチェックは行なっている。

Documentation/vm/overcommit-accounting参照





[参考]
Documentation/filesystems/proc.txt


最終更新 2006/07/10 14:32:37 - kztomita
(2006/03/27 13:53:47 作成)


リンク
最近更新したページ
検索