Technical Articles
Windows タスクマネージャーを使用する落とし穴(SAP SQL Anywhere):過去のブログより
このページは、以下の英語ページの抄訳です。最新の情報については、英語ページを参照してください。
https://blogs.sap.com/2013/10/09/from-the-archives-the-pitfalls-of-using-windows-task-manager/
この記事のオリジナルは、Glenn Paulley が sybase.com に 2008 年 10 月に掲載したものです。
Windows でよくある問題の1つが、SQL Anywhere データベースでどれだけの物理メモリーが使用されているかを識別することです。
Windows タスクマネージャーは、システム上のアクティブなプロセスを全てリストしますが、「メモリーサイズ」カラムの真のメモリー使用状況は表示されず、それぞれのタスクのワーキングセットサイズが表示されます。
大まかに言うと、Windows XP や、その他の類似の Windows オペレーティングシステムでは、ワーキングセットサイズはインメモリーに常駐している物理 RAM とプロセスによって最近使用されたものが表示されます。
ここで問題なのは、Windows が「最近使用されたもの」をどう定義しているかです。
Windows は、割り当てられた全てのメモリーのほとんどを、あたかもスワップアウトされたものであるかのように「存在しない」ものとしてマークし、定期的にプロセスのワーキングセットを「トリミング」します。
これらのメモリーページは、他の目的に最初に再使用されますが、Windows は実際にはそのメモリーをスワップアウトしていません。
そのメモリーがプロセスで再度参照されると、仮想メモリー問題がプロセスで生じます。
Windows は、この「ソフト問題」をキャッチし、実際にはメモリーがプロセスに使用されているのを認識しながら、それに応じてプロセスのワーキングセットをインクリメントします。
通常、タスクマネージャーは、プロセスが最小化した時にプロセスのワーキングセットで激減したものをレポートします。
Windows では、最小化したアプリケーションはほとんどメモリーを利用しないという仮定にもとづきそのプロセスのワーキングセットをシビアにトリミングします — しかし、これは、データベースには無効です。
タスクマネージャーによって表示されたプロセスのワーキングセットサイズは、大きく変動する可能性があるため、タスクマネージャーがレポートしたものも、「VM サイズ」値のどちらもサーバーのメモリー消費を判断するのに役に立つメトリクスではありません。
Windows AWE の拡張を 32 bit サーバーで使用すると、データベースキャッシュページは物理的にメモリー上でロックされ、スワップアウトすることができません。
そのため、プロセスのワーキングセットの一部として見なされず、タスクマネジャーはレポートしません。また、Address Windowing Extensionsを利用するプロセスのメモリー使用を適切にレポートするビルトインのWindows ユーティリティは存在しません。
サーバーのメモリー消費やサーバーのアドレススペースをそれぞれトラッキングするには、タスクマネージャーは使用せず、Windows のパフォーマンスモニターの「Process/Private Bytes」や「Process/Virtual Bytes」カウンターを使用することをおすすめします。
(これらの値のどちらもAddress Windowing Extensions のためのメモリーを含まないことに注意してください)
全てのプラットフォームにおいて、サーバーウィンドウでスタートアップのキャッシュサイズ、Select property('CacheSize')
で現在のキャッシュサイズを知ることができます。
注意: Windows NT の パフォーマンスモニターを使用することで、非常に有益な情報を得ることができますが、逆にこれを使用することでパフォーマンス評価の結果に混乱を来すことがあります。
なぜならば、NT のパフォーマンスモニターは、サーバーのリソースの一定量を消費するからです。また、NT のパフォーマンスモニターの統計情報は、知識がないと適切に解釈するのが困難です
上記は、 SQL Anywhere の容量計画 からの抜粋です。
===
SAP SQL Anywhere に関する詳細情報は、SAP SQL Anywhere Communityページ<英語> を参照してください。
上記のコミュニティーに掲載されている技術情報は、順次SQL Anywhere 日本語コミュニティ
に掲載しています。
SQL Anywhere に関してはまずはこちらをご参照ください。無期限でご利用いただける無償の Developers Edition もこちらからダウンロードが可能です。
SQL Anywhere に関して技術的な質問のある方はコミュニティに登録し、
「Ask a Question」機能をご利用ください。
Language には「Japanese」、
Primary Tag には「SAP SQL Anywhere」を選択
User Tagに「sql anywhere」「sql anywhere Japanese question」
を入力してください。
不具合につきましては、サポート契約者様専用の問い合わせ方法にてお問い合わせください。
======================
ご購入に関するお問い合わせ
こちらよりお問い合わせください。