Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

ツールの利用ポイント

監視・プロファイル ツールやサポートツールは、「サーバーの監視」のフローチャート中の

の部分で使用します。

障害対応のノウハウと利用可能なツールを把握しておくことで、

ツール一覧

プロセス監視

Windowsタスクマネージャ

WindowsOS付属の簡易プロセス監視ツール。

パフォーマンスモニタ

WindowsOS付属のプロセス監視ツール。

Process Monitor

プロセス監視(各種イベント監視)

Process Explorer

プロセス監視 / ハンドル数調査 / ユーザモードダンプ取得

DB監視

Management Studio

ネットワーク監視・プロファイル

Wireshark

システム情報収集

Microsoft Product Support Report

各種ログの収集ツール(各製品毎のエディションが用意されている)

デバッグ ツールセット

Debugging Tools for Windows

ライブ・デバッグ・ダンプ取得・分析

WinDbg、CDB、NTSD、KD.etc

アンマネージヒープ解析

UMDH:User Mode Dump Heap

IISライブ・デバッグ、ダンプ取得・分析

ADPlus

ユーザモード プロセスダンプ

UMPD(User Mode Process Dumper )

ユーザモードプロセスダンプ取得

WER(Windows Error Reporting)

Windowsエラーレポートの情報を取得

ダンプサマリ

Dumpchk.exe

メモリ ダンプ ファイルの簡易検証

Debug Diagnostics

ユーザモードプロセスダンプの取得・分析(サマリの生成)

ユーザモード

Visual Studioプロファイラ

Visual Studio 2010 Premium / Ultimate付属のマネージドコードプロファイラ

CLR Profiler

マネージドコードプロファイラ(メソッドの呼出回数・時間、メモリ割当・消費、オブジェクト接続・ルート追跡)

SOS.dll(SOS拡張)

マネージドコードプロファイラ(ライブ・デバッグ & ダンプ分析)

Managed Stack Explorer

マネージドコードプロファイラ(スレッド ダンプ)

Handle

ハンドル数調査

DevPartner? Studio

マネージドコードプロファイラ

PurifyPlus? for Windows

アンマネージドコードプロファイラ

カーネルモード

プロファイラ

Driver Verifierカーネルモードドライバのデバッグ/メモリ分析

Memory Pool Monitor

カーネルモードドライバのメモリ分析

Desktop Heap Monitor

デスクトップ・ヒープのメモリ分析

メモリ・リーク

タスクマネージャ

「パフォーマンス」タブ

【】内はVista以降

「プロセス」タブ

参考資料

パフォーマンスカウンタ

メモリ空き容量

未使用ページリスト、ゼロページリスト、スタンバイ リストの合計

メモリ使用量@プロセス毎

マネージメモリ@プロセス毎

ハンドルリソースリーク

ハンドルリソースリーク@プロセス毎

ハンドルリークはカーネルモードメモリの圧迫につながる。

マネージソースリーク@プロセス毎

Heap(パフォーマンス オブジェクト)

以下の設定で有効になる。

参考資料

ページングの分析はMemory\Page Read/secを参照する。

ダンプ解析

アンマネージド

マネージド

カーネル メモリ スペース

一般ユーザーのために設計されていないことに注意してください。カーネル・デバッガに既に精通しておりウィンドウズの内部についての知識を持っており、カーネル・モード・プログラムをデバッグする基礎的な技術を持っているユーザを想定しています。

カーネル オブジェクトのハンドル

タスクマネージャ

パフォーマンスカウンタ

Sysinternals Handle

メモリ プール(ページ プールと非ページ プール)

タスクマネージャ、パフォーマンスカウンタ

Memory Pool Monitor ユーティリティ (Poolmon.exe)

ページ プールと非ページ プール、およびターミナル サービス セッション用に 使用されるメモリ プールからのメモリ割り当てに関してOSが収集するデータを表示する。
これによりカーネルモードで動作するモジュール(ドライバ)のリーク問題を検出可能(必要に応じてgflagsを設定することで割り当ての際に、ドライバをある程度識別可能なTagが付与される)。

WinDbg+Kdの!poolused拡張コマンド

Driver Verifier

プール・トラッキング機能を有効にした状態で(プールトラッキング機能は負荷があるので、本番に適用する場合は検証が必要)カーネル メモリダンプや、完全メモリダンプでカーネル メモリ スペースをダンプ出力し、これを分析することでカーネルドライバのメモリリークを確認する。

Sysinternals Notmyfault

基本的にはブルースクリーンを発生させるためのツールであるが、この他にも、指定した増分値で非ページ プールまたはページ プールのいずれかにリークを発生させるオプションがある。

デスクトップ・ヒープ

Desktop Heap Monitor

Desktop Heap Monitorで、Service-0x0-3e7$\Default の情報が、Session 0 へログインしないと確認できない件。

Windbg+LiveKd?の!dskheap拡張コマンド

チューニング方針

当該デスクトップのUsed Rateの合計が100%以下であれば他のデスクトップに影響を与えることは無い。しかし、余裕を持たせるため、当該デスクトップのUsed Rateの合計は、50-70%以下になるようにする。

チューニング方法

USERオブジェクト、GDIオブジェクト

タスクマネージャ

Sysinternals Process Explorer

GDIオブジェクトの数、また、GDIオブジェクトが消費するプールの上限値を確認できる(ただしWinDbgをインストールして、シンボルサーバを設定する必要がある)。

Sysinternals Testlimit

Sysinternals の Testlimitユーティリティを実行すると、USERオブジェクト、GDIオブジェクト数の制限を簡単に確認することができる(可能な限りまUSERオブジェクト、GDIオブジェクトを作成する)。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion?\Windows
USERProcessHandleQuota?とGDIProcessHandleQuota?には、ひとつのプロセスが利用できる。
最大のUSERオブジェクトとGDIオブジェクトの数が設定されている。デフォルトの値は 其々10,000。
#1つのセッションで作成できる USERオブジェクト、GDIオブジェクト数に対する制限は 其々65,535


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS