• 締切済み

パフォーマンスモニターのメモリ使用量測定について

Windows Server 2003のパフォーマンスモニターについてお聞きしたいことがあります。 ■質問 パフォーマンスモニターの以下の2項目は、 一方が増加すれば一方が減少するという相関を持たないのでしょうか? ・memory/available bytes(利用可能な物理メモリの容量) ・process/working set(プロセスが使用している物理メモリ量) ■質問の背景 サーバーに対しあるリクエストをした際に、memory/available bytes(利用可能な物理メモリの容量)が一時的に1.5GB程度減少しますが、process/working set(プロセスが使用している物理メモリ量)が増加しません。 利用可能なメモリが減少したということは、その分何らかのプロセスがメモリを消費していると考えますが、パフォーマンスモニターの結果がそのような傾向を示さなかったため、質問させて頂きました。

みんなの回答

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.5

回答No.4は、別な質問者の回答でした。 間違いました。 WindowsServer2003に限って記載すると、 仮想メモリのサイズ=コミットチャージ制限値-物理メモリ合計 という関係になるのでしょうか。 コミットチャージの合計は仮想メモリでは無く、現在使用しているメモリの全てのサイズということでしょうか。 この値が物理メモリを超えたとき、仮想メモリが使われ始めます。 これは大雑把なイメージです。 実際は、搭載メモリは、「虫食い状態」で運用されますので、もっと大きくなります。 よって実際の使用されている仮想メモリは、見えないと思います。

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.4

メモリの管理の動きは、非常に複雑です。 スワップイン/スワップアウト、搭載メモリの「虫食い状態」、プロセスの緊急度(プライオリティ)等を見ながら、メモリ管理アルゴリズムを構築しています。 こうした全体的なメモリ管理を観察するには、たくさんのフリーソフトがあります。 下記は、Microsoftによるものですが、これが一般的だと思います。 最新は、 VMMap v3.21 https://technet.microsoft.com/en-in/sysinternals/dd535533(en-us).aspx 586KB VMMap.zip 617KB コマンドプロンプトでは、631,234 Bytes VMMap.zip をダブルクリックし、解凍する。 全てを展開する。 その中のvmmap.exe をダブルクリックし、実行。 VMMap - Sysinternals:・・・・ が起動する。 File タブ、 Run as Administrator をクリックすると開始する。

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.3

> 物理メモリ量が1.5GB程度減少するのに対し、 > 仮想メモリは10MB程度しか減少しませんでした。 > 直接的な関係はなさそうでした。 搭載メモリと、仮想メモリとの関係が観察できるソフトで観察しないと微妙な変化が見えないと思います。 現存する機能で観察する場合は、 Windows Server 2003ということで限定すれば、 下記の例では、仮想メモリの動きは、観察できないです。 必要メモリ・サイズを見極める http://www.atmarkit.co.jp/ait/articles/0112/18/news003.html タスク・マネージャのパフォーマンス・タブの見方(Windows 8/Windows Server 2012編) http://www.atmarkit.co.jp/ait/articles/1302/15/news092.html この場合は、 > メモリ表示の内容 で、 ここから**** (6)コミット済みサイズと、コミット可能な最大サイズ(=物理メモリ・サイズ+ページ・ファイル・サイズ)。 コミットとはプロセスが使うメモリ・サイズの合計のこと。 物理メモリに入りきらない部分は、ディスク上のページ・ファイルへスワップ・アウトされる。 ここまで*** この場合は、仮想メモリの動きも分ります。 こうした観察できるソフトで観察しないと見えません。

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.2

> 物理メモリ量が1.5GB程度減少するのに対し、 > 仮想メモリは10MB程度しか減少しませんでした。 > 直接的な関係はなさそうでした。 どんな測定方法を使って、正確なメモリ割り当ての動きを観察できるかの問題を記載したつもりです。 そこで問題となるのは、搭載メモリと、実際に使用中のメモリ、空きメモリ、スワップインされているメモリを同時測定できるようなモニターで観察しないと、実際の動きは正確には分からないということを記載したつもりです。 これは、パフォーマンスモニターのコミット済みで観察できます。 この値の変化で納得いく動きがとらえられるかです。 貴殿も記載した通り、 > 直接的な関係はなさそうでした。 ということは、これらの表示では微妙な変化をとらえきれないと思われます。 それは何故でしょう。 特に、搭載メモリは、「虫食い状態」で運用されているため、それが随時観察できるモニターで観察しておかないと無理でしよう。 それと仮想メモリの場合は、ディスクのI/O動作をどう表現しているかを理解しておかないと無理かもしれません。 ここまで進むと、自分でプログラムを作って監視できるものを作って納得していくかしかないように思えてきます。 というのが、当方の結論です。 Windows標準「リソースモニター」でより高度にCPUやメモリを監視してみよう http://michisugara.jp/archives/2013/resource_monitor.html

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.1

> パフォーマンスモニターの以下の2項目は、 > 一方が増加すれば一方が減少するという相関を持たないのでしょうか? > ・memory/available bytes(利用可能な物理メモリの容量) > ・process/working set(プロセスが使用している物理メモリ量) 確かに普通の場合はそうだと思います。 しかし、メモリの場合は、これ以外に、仮想メモリというディスク領域に一時Swap-in Swap-out させる機能があります。 この変化が見えていないことが原因かも知れません。 ご存知のように搭載メモリを100%使用するわけではなく、新たなプロセスが発生すると、それが入る余地がなければ、プライオリティ(緊急度)が低いプロセスをディスクに書き出します。 その後の空き領域に新しいプロセスをロードします。 この流れの状態がどう表示されているのかは、当方は分かりません。 言えることは、仮想メモリの動きがとらえられていないのが原因とは考えられませんか。

sons_of_liberty
質問者

お礼

ご回答ありがとうございます。 頂いたアドバイス通り、仮想メモリについても測定してみましたが、物理メモリ量が1.5GB程度減少するのに対し、仮想メモリは10MB程度しか減少しませんでした。 直接的な関係はなさそうでした。