Skip to Content
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」

を入力してください。

不具合につきましては、サポート契約者様専用の問い合わせ方法にてお問い合わせください。

 

======================
ご購入に関するお問い合わせ

こちらよりお問い合わせください。

Be the first to leave a comment
You must be Logged on to comment or reply to a post.