none
物理メモリ使用率の確認方法 RRS feed

  • 質問

  • お世話になります。

    Windows2008R2 Std上で稼動しているメモリ使用率突然90%~100%になり、サーバ再起動を行うまで逼迫され続ける現象が発生しました。

    メモリ逼迫時は特にサーバ上で動作しているジョブ等はなく、サーバ用途としてはバックアップ機能を実装しているのみで、バックアップが動作しない日中の時間帯で当該現象が発生いたします。

    ※イベントログ上にも特にエラーログは発生しておりません。

    実際にどのプロセスでメモリを消費しているのか、タスクマネージャーのプロセスタブで確認しましたが、特段使用しているものは無いように見受けられます。(全ユーザーのプロセスを表示する、にチェック入れております。)

    また、プロセス内の利用メモリの合計値を足しても、搭載物理メモリの半分も消費していない状況です。

    上記前提踏まえ、以下質問失礼します。

    1、タスクマネージャーのパフォーマンスで確認できる、メモリ使用率のグラフの内訳確認方法は。

    2、プロセスタブの各プロセスで使用しているメモリの合計値が、物理メモリの使用率にならないのか。

    3、メモリ逼迫原因の調査方法は。

    以上、ご確認よろしくお願いいたします。

    2015年8月25日 1:20

回答

すべての返信

  • チャブーンです。

    「メモリ利用が逼迫した」とのことですが、本当にそう(障害かどうかを含め)かどうか、再確認をするべきかと思います。Windowsでは「空きメモリ」数値の減少=メモリの逼迫、を必ずしも意味しません。

    タスクマネージャからのメモリ情報の読み方については、以下の資料を確認してみてください。

    http://www.atmarkit.co.jp/ait/articles/0910/02/news098.html


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2015年8月25日 2:14
    モデレータ
  • チャブーン様

    お世話になります。

    早速のご連絡ありがとうございます。

    頂いたURLは確認済みです。

    URLにも記載の通り、グラフのバーが上がれば上がる程空きメモリがないとのことです。

    今回逼迫した原因以前の質問で、上記1、2の質問に対して何かご存知のことはないでしょうか。

    改めて、一番お聞きしたいことは以下の通りです。

    実環境で確認したところ、メモリ使用率のグラフの値と、各プロセスで使用しているメモリの値を足してもイコールにならないため、あのグラフはどこの数値を参照した結果なのかを知りたく思っております。

    以上、ご確認よろしくお願いいたします。

    2015年8月25日 4:11
  • チャブーンです。

    実環境で確認したところ、メモリ使用率のグラフの値と、各プロセスで使用しているメモリの値を足してもイコールにならないため、あのグラフはどこの数値を参照した結果なのかを知りたく思っております。

    おそらくは、タスクマネージャの[プロセス]-[ワーキングセット(プライベート)]がプロセス利用メモリの全量を示していないからです。詳細については、わかりやすい情報がしたのページにありましたので、ご覧いただくとよいのではないでしょうか?

    http://blog.livedoor.jp/blackwingcat/archives/1842334.html

    ちなみにタスクマネージャーの[パフォーマンス]-[メモリ]の値は、物理メモリ全量-(パフォーマンスカウンタMemory\Available Bytes(利用可能な物理メモリ量)の値)といった計算式で算出したもので、ワーキングセットの値を直接参照しているわけではない、という認識です。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2015年8月25日 6:03
    モデレータ
  • チャブーン様

    早々にご連絡ありがとうございます。

    再三お手数ですが、以下内容分かる範囲でご回答頂けると幸いでございます。

    -----------------------------------------------------------------------

    おそらくは、タスクマネージャの[プロセス]-[ワーキングセット(プライベート)]がプロセス利用メモリの全量を示していないからです。詳細については、わかりやすい情報がしたのページにありましたので、ご覧いただくとよいのではないでしょうか?

    -----------------------------------------------------------------------

    言葉足らずで恐縮ですが、頂いたURLも確認済みで、現象発生時、タスクマネージャ内のリソースモニタより、ワーキングセット(共有可能+プライベート)の値の合計値も計算しましたが、グラフデータとは異なる数値でした。

    -----------------------------------------------------------------------

    ちなみにタスクマネージャーの[パフォーマンス]-[メモリ]の値は、物理メモリ全量-(パフォーマンスカウンタMemory\Available Bytes(利用可能な物理メモリ量)の値)といった計算式で算出したもので、ワーキングセットの値を直接参照しているわけではない、という認識です。

    -----------------------------------------------------------------------

    ご認識の情報提供いただきありがとうございます。

    ワーキングセットの値を直接参照していないとなると、どこの値を参照して、Memory\Available Bytes(利用可能な物理メモリ量)が導かれているのか分かりますでしょうか。

    (詳しくはMEMORYDUMPを取得して解析するしかないでしょうか・・・)

    以上、ご確認よろしくお願いいたします。

    2015年8月25日 6:58
  • チャブーンです。

    言葉足らずで恐縮ですが、頂いたURLも確認済みで、現象発生時、タスクマネージャ内のリソースモニタより、ワーキングセット(共有可能+プライベート)の値の合計値も計算しましたが、グラフデータとは異なる数値でした。

    繰り返しますが、「ワーキングセットの総和」が「利用メモリの全量」ではないためです。たとえば非ページプールに割り当てられた部分等ワーキングセットには直接反映しない部分があるのだそうです。詳細はしたのページの方が答えてくださっているようですね。

    http://superuser.com/questions/906161/why-do-resource-monitor-and-task-managers-total-ram-usage-not-even-remotely-add

    ワーキングセットの値を直接参照していないとなると、どこの値を参照して、Memory\Available Bytes(利用可能な物理メモリ量)が導かれているのか分かりますでしょうか。

    Memory\Available Bytesの中身が知りたい場合、カウンタの説明を参照してください。[パフォーマンスカウンタ]を開いて、カウンタの追加を行い、該当カウンタを指定する際に「説明を表表示する」をONにすると、情報が表示されます。

    Windowsのメモリ管理は複雑なため、(プロセス使用量)+(空き容量)=全物理メモリ量、といった単純式は当てはまりません。したがって、ご自身でメモリ管理についての「概要知識」を学んでいただかないと、コミュニケーション自体が難しくなるかもしれません。したにあるような情報について、理解いただくとよいと思います。

    ちなみに本題である「どのプロセスがメモリを消費しているのか」については、各プロセスのWorking Setの「増減」を定期的に監視し、それを手掛かりに割り出すことになるでしょう。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答としてマーク mk5215 2015年8月28日 5:49
    2015年8月25日 9:03
    モデレータ
  • チャブーン様

    ご連絡ありがとうございます。

    Memory\Available Bytes(利用可能な物理メモリ量)の算出方法については、単純ではない旨、承知しました。

    何か概要でも分かればと思い参考にお聞きしましたが、要約して説明できるような内容でもないということですね。

    情報提供頂いたサイトを確認いたします。

    2015年8月26日 1:04
  • 以下、参考になりそうなリンクを記載します。詳細なメモリ管理の仕組みを調査なさりたいのでしたら、英語の書籍の「Windows Internals 6th edition」か、その翻訳本の「インサイドWindows 第6版」を読まれるのが良いのではないかと思います。

    Description of What the Available Bytes in Task Manager Represents
    https://support.microsoft.com/en-us/kb/312628

    An Overview of Troubleshooting Memory Issues
    http://blogs.technet.com/b/askperf/archive/2008/01/25/an-overview-of-troubleshooting-memory-issues.aspx

    An Overview of Troubleshooting Memory Issues - Part Two
    http://blogs.technet.com/b/askperf/archive/2008/01/29/an-overview-of-troubleshooting-memory-issues-part-two.aspx

    Finally a Windows Task Manager Performance tab blog!
    http://blogs.technet.com/b/supportingwindows/archive/2013/05/03/finally-a-windows-task-manager-performance-tab-blog.aspx

    Where has all my Physical RAM gone?
    http://blogs.technet.com/b/askperf/archive/2012/12/19/where-has-all-my-physical-ram-gone.aspx

    RAMMAP
    https://technet.microsoft.com/ja-jp/sysinternals/ff700229.aspx

    Windows 7 / Windows Server 2008 R2 環境でのDynamic Cache Service 利用について
    http://blogs.technet.com/b/askcorejp/archive/2014/05/26/windows-7-windows-server-2008-r2-dynamic-cache-service.aspx

    システム ファイルのキャッシュが物理メモリの大部分を使用するとアプリケーションおよびサービスのパフォーマンスの問題が発生します。
    https://support.microsoft.com/ja-jp/kb/976618

    Debug 101: Examining Memory Use
    http://blogs.technet.com/b/askperf/archive/2009/08/28/debug-101-examining-memory-use.aspx

    • 回答としてマーク mk5215 2015年8月28日 5:50
    2015年8月26日 9:16