プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

スポンサーサイト このエントリーをはてなブックマークに追加

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)

PSSとUSS このエントリーをはてなブックマークに追加

http://journal.mycom.co.jp/news/2008/04/18/007/index.html


プロセス管理機構も見直され、プロセスごとのメモリ使用量をかんたんに測定できる機能が追加された。カーネル2.6.25では、プロセスが使用するページに対応する物理ページ配置をプロセスごとに/proc/$PID/pagemapsとして作成、これを他のプロセスと比較することで共有するページを判別できる。共有ページを共有しているプロセスの数で除した数値を持つ「proportional set size (PSS)」と、共有されていないページをカウントした「unique set size (USS)」という2つの統計値も新設された。



この説明はへんだ。
カーネル内にUSSという統計値は存在しない。また、pagemapsというファイルは存在しない(pagemapだ)

pagemapはページのPFNが知りたいときしかほぼ使い道はなくて、
ページ共有されているかどうか。およびUSS、PSSは/proc/$PID/smaps を見る

36c5400000-36c554a000 r-xp 00000000 08:01 18940074 /lib64/libc-2.5.so
Size: 1320 kB
Rss: 508 kB
Pss: 28 kB
Shared_Clean: 508 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 508 kB
Swap: 0 kB



ここで、
・共有されているものはSharedにカウントされる
・専有されているものはPrivateにカウントされる
・PssはRssを共有数で割ったもの

という規則によりプロセス全体のRSS、PSS、USSは
RSS: アドレス空間毎のRssを合算
PSS: アドレス空間毎のPssを合算
USS: アドレス空間毎のPrivate_Clean + Private_Dirty を合算

で計算できる事になります。
実はpagemapはかなりUI 設計ミスでpte holeもPFN not presentなページをひたすら返すので
64bitアーキで

$ cat /proc/$$/pagemap > pagemap.txt


とかやると、ひどい事になります。さすが組み込み向け。


BTW: ソース見てて気づいたがHugepageの配慮が抜けてるぞー > pagemap

関連記事


linux | 【2008-04-25(Fri) 15:14:55】 | Trackback:(0) | Comments:(0)
  1. 無料アクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。