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