- PR -

WMIでシステムキャッシュの取得方法

1
投稿者投稿内容
未記入
会議室デビュー日: 2006/02/15
投稿数: 7
投稿日時: 2006-02-16 13:15
お世話になります。

現在、DOBON.NETさんのTIPSを参考に、WMIを利用してOSの情報を取得しています。

システムキャッシュの値を取得しようと思い、
Win32_OperatingSystemのPropertyDataを全て取得して、
システムキャッシュの値をとれそうな項目を探しました。
しかし、見つからなかったので、取得方法がわからず、
質問させていただきました。
WMIからは取得できないでしょうか?

タスクマネージャのパフォーマンスタブにある、システムキャッシュの取得方法です。

よろしくお願いします。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-02-16 15:25
とりあえず、ここをお読みになるとよいかと

File Cache Performance and Tuning
未記入
会議室デビュー日: 2006/02/15
投稿数: 7
投稿日時: 2006-02-16 18:04
ちゃっぴ様、
お返事ありがとうございます。

紹介いただいたページですが、
全て英語でした。
このような事を書くと、
「英語だからと言って避けているのは良くない」
とお叱りを受ける事必死ですが、
紹介いただいたページのどこに、
私の希望の事が書かれているか分からない状態で、
全て訳しながら読むのには相当な時間を要すると感じました。
せっかく紹介いただいたのに、すみません。今は無理です。

という事で、
せっかくご紹介いただいたのにも関わらず、
それを拒否してしまったので、
申し訳ない気持ちから、
今回の質問は、これまでとさせていただき、
自分なりに他の方法で調べてみようと思います。(勝手ですみません)

この度は本当にありがとうございました。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-18 21:58
 MSDN を 「"system cache" NEAR size」で検索すると、それっぽいのが出てくるんだけど、表示されている値とずれがあるんだよなぁ。。。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-02-18 22:12
引用:
MSDN を 「"system cache" NEAR size」で検索すると、それっぽいのが出てくるんだけど、表示されている値とずれがあるんだよなぁ。。。



私が示した Link 先にも書いてありますように、System Monitor で取得できる
Memory:Cache Bytes と TackManger の System Cache は一致していません。

CacheSet

これで取得している Cache Size も Memory:Cache Bytes と一致しています。
# Source を覗いてみればわらりますが、NtQuerySystemInformation で
# 取得しているようです。

で、この件ですが、上記 Tool 作者 Mark Russinovich の著書に記述があります。

インサイドMicrosoft Windows 第4版 下

11章の Chache Maneger で説明がなされています。
興味があるのでしたら、購入してみてください。

ちなみに取得方法までは書いてませんので、著者にでも聞いてみてください。
Kernel Debug での Monitor とかは載っていますが・・・
とりあえず、Process Explorer では実装しているようですから。

とりあえず、質問者が拒否しているようなのでこれにて

[ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2006-02-18 22:29 ]

[ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2006-02-18 22:45 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-20 20:23
引用:

ちゃっぴさんの書き込み(2006-02-18 22:12)より:

とりあえず、質問者が拒否しているようなのでこれにて


 掲示板って言うのは元々不特定多数の人にあてたメッセージですし、後から同じ質問を持って検索してくる人のためにも(「ここで話が出ているのですが、回答がついていないようです」という質問もありますよね)、質問者を無視してしまってもいいと思っています。


 以前、WMI から取得した値とタスクマネージャに表示される値が違うのはなぜ?という質問を、どこかで見たように思います。かなりもったいないという気がするので、
引用:

未記入さんの書き込み(2006-02-16 18:04)より:

紹介いただいたページのどこに
私の希望の事が書かれているか分からない状態で、
全て訳しながら読むのには相当な時間を要すると感じました。


ということですから、どの辺りを読めばいいか、教えていただけないですか?
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-02-21 02:28
引用:

Jittaさんの書き込み (2006-02-20 20:23) より:
引用:

ちゃっぴさんの書き込み(2006-02-18 22:12)より:

とりあえず、質問者が拒否しているようなのでこれにて


 掲示板って言うのは元々不特定多数の人にあてたメッセージですし、後から同じ質問を持って検索してくる人のためにも(「ここで話が出ているのですが、回答がついていないようです」という質問もありますよね)、質問者を無視してしまってもいいと思っています。


 以前、WMI から取得した値とタスクマネージャに表示される値が違うのはなぜ?という質問を、どこかで見たように思います。かなりもったいないという気がするので、
引用:

未記入さんの書き込み(2006-02-16 18:04)より:

紹介いただいたページのどこに
私の希望の事が書かれているか分からない状態で、
全て訳しながら読むのには相当な時間を要すると感じました。


ということですから、どの辺りを読めばいいか、教えていただけないですか?



たしかにおっしゃっていることには一理あるので、

まず、記載されている部分ですけど「Cache Performance Counters」になります。
で、読み進めていくと下記部分にぶち当たります。

引用:

The Cache Resident Bytes counter reports the amount of real memory the file cache is currently occupying. The Cache Bytes counter, which sounds like it might tell you the size of the cache, actually reports the full system working set, which includes Cache Resident Bytes and several other real memory areas. In a Windows 2000 file server (remembering Windows 2000's heritage as the follow-on to the joint IBM/ Microsoft-developed OS2 LAN Manager), the file cache so dominates the system working set that internal documentation frequently refers to the entire system working set as the cache. This usage carries over to tools like Task Manager, which labels the system working set as the System Cache in the Performance tab, illustrated in Figure 7-2. The Windows NT version of Task Manager called this field File Cache, which is probably just as misleading. Curiously, the number of bytes in the System Cache reported by Task Manager does not correspond exactly to the Cache Bytes counter in the System Monitor.



思いっきり要約 & 意訳 すると、「system monitor」で取得される「Cache Bytes」は 「system working set」です。(これは Cache 以外にもいろいろ含んでいますが・・・)
奇妙にも、「system monitor」の「Cache Bytes」と「TaskManager」の
「System Cache」は正確に一致しません。

途中で、この手の用語というか表記が紛らわしいといっていますが、
これはまったくもってそのとおりで、「PF 使用量」ってなによこれ、
「Committed Bytes」やん!
# 何とかしてよ。

ちなみに上記では「Curiously(奇妙にも)」となっていますが、
「インサイドMicrosoft Windows 第4版」を読むとわかりますが、
ぜんぜん奇妙なことではないようです。
というのは、こんな風に算出しているらしいです。

System Cache = system working set + standby list + modified list

system working set は Performance Counter で取得できますが、
stanby list と modified list は Kernel Debugger 以外の
取得方法を知りません。

とりあえず、WMI の Win32 系の Class では無理です。

[ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2006-02-21 02:49 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-21 21:54
 わざわざ抜き出し/意訳までしていただき、ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)