橡 MEM-CHK

Windows NT 対応メモリ監視ツール
FA MASTER Memory Checker
昨日まで連続稼働していたシステムが、
突然止まったことありませんか?
その原因は、メモリリークかもしれません
何事もなく動いているように見えても
システム異常へのカウントダウンは始まっているのです。
− 目次 −
FA MASTER Memory Checker とは? ・・・・・・・・ 2
仕様・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 2
動作環境 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 2
特徴・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3
メモリリークとは・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4
Memory Checker を用いたメモリリーク解析 ・・・・・・・ 5
■従来作業との比較 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 5
■解析手順 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6
● 事例・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8
●
●
●
●
●
●
-1-
Ver.1.02
●Windows NT 対応メモリ監視ツール FA MASTER Memory Checker とは?
Microsoft(R)Windows NT 上で動作するシステムのメモリ使用状況をプロセス単位で測定/監
視し、メモリリークの可能性を秘めるプロセスを検出します。
●仕様
■測定項目
■測定エリア
・ メモリ使用率
メモリサイズ
:128KB∼2048KB
ファイルサイズ :64KB∼2GB
・ 物理メモリ使用量/使用率
・ キャッシュの使用量/使用率
・ 仮想メモリの使用量/使用率
・ ページの入出力数
・ ページの入力数
・ ページの出力数
■監視機能
・ イベントログ出力(イベントビューア)
・ イベント通知
・ コマンド起動
・ プロセス毎のメモリ使用率
・ プロセス毎の物理メモリ使用量
・ プロセス毎の仮想メモリ使用量
・ プロセス毎の仮想メモリ最大値
・ プロセス毎のページファイル使用量
・ プロセス毎のページファイル最大値
※監視周期範囲:10 分∼1440 分(24 時間)
・ プロセス毎のハンドル数
■測定開始/測定終了条件
開始条件:即時開始(手動開始)
時間
時刻
終了条件:測定終了(手動終了)
時間
時刻
バッファ満杯
※測定周期範囲:100 ミリ秒∼1000 秒
■メモリリーク解析項目
・
・
・
・
・
・
・
プロセス名称
プロセス ID
仮想メモリ上昇回数
仮想メモリ変化率
ページファイル上昇回数
ページファイル変化率
ハンドル変化率
■ネットワーク機能(TCP/IP プロトコル利用)
1 台のマシンで複数台のメモリ使用状況をモニ
タリングすることが可能
ただし、利用台数分のライセンスが必要
※編集周期時間:測定時の周期時間∼3600 秒
■測定ストリーム
■その他
1台のマシンにつき、最大 8 ストリーム
・ 実行レベルの変更が可能
・ ユーザープログラムにてデータ取得(メ
モリ使用量、メモリ最大値、ハンドル数)
が可能(ライブラリを用意)
●動作環境
項目
適応 OS
適応パソコン
その他
仕様
Microsoft(R) Windows NT 4.0 サービスパック 3、4 または5
Pentium(R)を搭載した IBM PC/AT 互換機
必要メモリ容量
:32MB(64MB 以上推奨)
必要ハードディスク :100MB 以上
Microsoft(R) Excel 97 搭載を推奨
-2-
Ver.1.02
●特徴
■手軽にシステム診断
Memory Checker が実行する際の CPU 負荷は軽く、全体の 1∼3%程度です。システムに負荷をかけずに簡単な操
作で手軽にメモリ測定が行えます。さらに Memory Checker のインストール以外にシステムを変更する必要があ
りません。解析終了後はそのままアンインストールしていただけます。
■プロセス単位でのメモリ利用状況を測定
プロセス単位に、メモリの使用量とハンドル数を一定周期で測定できます。
プログラム開発時にメモリの使用状況の妥当性を確認することができます。
■メモリリークの疑いのあるアプリケーションの警告
システムテスト段階において、メモリリークを発生させているアプリケーションプログラムを特定する事がで
きます。原因の早期特定により、対策を含めた安定稼働システム構築が大幅に削減できます。
■メモリリーク発生時にシステムダウンまでの期間を予測
システムのメモリ使用量の増加傾向から、メモリ不足が発生すると予想される日数を表示します。予測に基づ
く計画的な予防保全(システムの初期化)を実施することで、不意のシステム停止を予防することができます。
■オンライン稼働中のメモリ監視と通知
アプリケーションプログラムにメモリリーク部分が残っている場合でも、システム稼働後のメモリ不足時にア
ラームを出力することにより、不意のシステム停止を防止できます。
図.ファンクションダイアグラム
-3-
Ver.1.02
●メモリリークとは
「メモリリーク」は、
「プログラムが使用したメモリを解放せず、徐々に使用可能なメモリを失っていく現象」を指しま
す。失ったメモリの量が少ないうちはシステムへの影響はありませんが、そのまま長期間稼働させておくとメモ
リ不足が発生し、システムがダウンすることもあります。
システムは正常稼働しているが…?
システム起動当初は、正常に動作しているので、このまま連続稼働を続け
られるかに見えます。
メモリ
1
メモリリークが潜伏するプログラム
2
:
p = malloc(BUF_SIZE);
:
p++;
:
free(p); 解放アドレス間違い
下記のようなプログラムが含まれているシステムを連続稼働させると、
メモリリークが発生し、使用可能なメモリが次第に失われていきます。
確保
OS
解放
■メモリ操作に関して単純なプログラムミスがあるソフト
■長期連続稼働が前提でない内部構造になっている流通ソフト
再利用されないメモリ
連続稼働すると動作不安定
メモリ
3
メモリの解放漏れが次第に顕在化し、システムが動作不安定になります。
兆候が現れるまでの期間は、システムによって数週間∼数ヶ月の差があり
ます。
システムダウン
メモリ
4
プロセス(タスク)の動作に必要なメモリが確保できず、プログラムが正常に
実行できなくなります。
そして、最終的にはシステムダウンに陥ってしまいます。
事後解析できますか?
何の準備もないままダウンしてしまうと、解析が非常に困難です。
5
原因プロセスは?
何か情報は残っていないか?
メモリリークの対策は、できる限り事前に摘出しておくことと、万一に備えて
システム稼働中にも情報を収集しておくことが重要です。
-4-
Ver.1.02
● Memory Checker を用いたメモリリーク解析
Memory Checker は、メモリ資源利用状況を測定し、機能デバッグおよび性能デバッグを支援するシステムです。
■従来作業との比較
メモリリーク解析は従来、人手により行っていましたが、多量な情報を同時に解析しなければならないので、
解析作業には多大な労力が必要でした。本ツールの支援機能を使えば、メモリリークの原因究明作業時間を大
幅に短縮することができます。
Memory Checker を使った作業
従来の作業
情 報 収 集
複雑な操作を要求されるツール
情報収集操作
メモリリーク解析を
前提に情報収集
何の情報があれば解析可能?
操作がよく分からない...
メモリに関する深い知識が必要
簡単操作で誰でも使える
メモリリーク有無の確認
「メモリリーク解析」を実行するだけ
何を、どのように見ればメモリリーク発生?
この状態で、何日間安定動作するのだろうか?
システム全体でメモリ使用量が増加傾向にあります
あと約 60 日でメモリ不足が発生します
多量のパラメータを追跡
原因プロセスの特定
解 析 作 業
プロセス 1 の PageFileBytes は…?
HandleCount は…?
:
:
プロセス 100 は…?
:
全部手作業で確認!?
ひたすら膨大なパラメータをチェック
収集情報を自動解析
プロセス12 とプロセス53 は、
メモリリークの疑いがあります
対策ポイントの絞込み
解析情報を簡潔に提供
プロセス12 の HandleCount が
増加傾向にあります
周期性がありそうだが
一度にどのくらい増加しているのか?
周期は何時間?
3 時間周期で発生する、テーブル更新処理に問題ありそうだ
メモリリークの有無を確認したいとき
障害原因となっているプロセス(タスク)を特定したいとき
MemoryChecke
rがあなたをサポートします。
-5-
Ver.1.02
■解析手順
メモリリーク解析画面と解析手順について説明します。
1
資源利用状況の収集
■システムの情報を収集
情 報 収 集
2
システム全体の動作概況
■システム全体のメモリ利用状況を確認
Point
3
問題プロセスの特定
■資源の消費傾向を数値で確認、調査対象を絞り込む
システム全体のメモリ負荷
メモリ不足までの日数
Point
資源カウンタの上昇回数
変化率が大きいプロセス
システム 全 体 の 解 析
-6-
Ver.1.02
4
プロセスの動作概況
■消費傾向をグラフで確認
Point
プロセス 単 体 の 解 析
5
周期の有無
上昇パターン
変化のタイミング
プロセスの動作詳細
■詳細な解析数値を確認
Point
消費量
増分値
時刻、時間との関連
-7-
Ver.1.02
■事例
■メモリ監視ツール「FA MASTER Memory Checker」価格表
●FA MASTER Memory Checker Base Package
開発システム
MEM-CHK(NT)BP
¥198,000(1 ユーザーライセンス付き)
追加 1 ユーザーライセンス MEM-CHK(NT)BL1
¥32,800
●FA MASTER Memory Checker Full Package (負荷監視機能付)
プロセッサや I/O の負荷を測定する機能を付加したツールで、システムの性能チューニングに有効です。
開発システム(負荷測定機能付き) MEM-CHK(NT)FP
¥298,000(1 ユーザーライセンス付き)
追加 1 ユーザーライセンス
MEM-CHK(NT)FL1
¥49,800
■開発元 株式会社 日立製作所
■Memory Checker の技術的なお問い合わせ先
株式会社コンテック パッケージソフトウェアインフォメーション
TEL 06-6477-6274 FAX 06-6477-6278 E-mail : p1ougi@tokyo.contec.co.jp
※Microsoft Windows は、米国 Microsoft Corporation の米国ならびに他の国における登録商標です。
※Windows NT Server 4.0 の正式名称は、Microsoft (R) Windows NT(R) Server operating system Version 4.0 です。
※Windows NT Workstaion 4.0 の正式名称は、Microsoft (R) Windows NT(R) Workstation operating system Version 4.0 です。
※その他、記載されている会社名、製品名は、各社の商標または登録商標です。
本
社:大阪市西淀川区姫里 3-9-31 〒555-0025
東部支社:東京都江東区亀戸 2-25-14 立花アネックスビル 〒136-0071
TEL(03)5628-0211 FAX(03)5628-0210
中部支社:名古屋市中村区名駅 2-38-2 オーキッドビル 〒450-0002
TEL(052)564-7821 FAX(052)564-7826
西部支社:大阪市西淀川区姫里 3-9-31 〒555-0025
TEL(06)6472-0265 FAX(06)6478-1031
営業所 :札幌・仙台・宇都宮・高崎・立川・横浜・厚木・静岡・北陸・
京滋・広島・九州
ホームページ http://www.contec.co.jp
各種セミナ開催中、弊社支社・営業所までお問い合わせ下さい。
ホ
ームページ
本仕様は 2000 年 2 月の情報であり予告なしに変更することがあります。
-8-
Ver.1.02