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

proc/meminfo


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

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のサイズ。
CachedPageCacheのサイズ
Active
最近アクセスされたページ。基本的に解放の対象外。
Inactive
最近アクセスのないページ。空きメモリが少なくなるとこのページから解放されていく。
HighTotal
HighMemoryの総容量
HighFree
HighMemoryの空き容量
LowTotalLowMemoryの総容量
LowFreeLowMemoryの空き容量


Buffers: 13904 kB
Buffer Cacheのサイズ(Kernel2.6でもi-nodeの読みこみ時等ではまだ使われる)
各デバイスの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を指定している


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

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

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




SwapTotal: 1052216 kB
SwapFree: 1052216 kB
Dirty: 6328 kB
Writeback: 0 kB
Mapped: 146096 kB
Slab: 25496 kB
CommitLimit: 1309308 kB
('vm.overcommit_ratio' * Physical RAM) + Swap で計算される。

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

Documentation/vm/overcommit-accounting参照

Committed_AS: 205792 kB
プロセスが割り当てているメモリの総量(物理ページの割り当て量ではない)。
malloc()だけしてまだアクセスしていない領域(仮想アドレス空間だけ割り当てられて
物理ページが割り当てられていない状態)も含まれる。(VM的に'commit'されいつでも
使用できる状態)

PageTables: 2088 kB
VmallocTotal: 516020 kB
VmallocUsed: 1664 kB


[参考]
Documentation/filesystems/proc.txt


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


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