障害対応に使用するツールの一覧
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>障害発生時の分析]]
* 目次 [#p7fb3757]
#contents
*概要 [#pbf59353]
*ツールの利用ポイント [#x78d9125]
監視・プロファイル ツールやサポートツールは、「[[サーバー...
-原因の把握、解決策の決定
-サポートを活用して解決策を決定する。
の部分で使用します。
障害対応のノウハウと利用可能なツールを把握しておくことで、
-問題発生時に、セルフ・サポートが可能になります。
-また、セルフ・サポートが困難な場合もサポート・エンジニア...
--サポート・エンジニアと連携可能な範囲はどこか?
--サポート・エンジニアに提供してもらえる情報は何か?
--サポート・エンジニアに提供すべき情報は何か?
*システム情報収集 [#x9ed5bd5]
**[[イベント・ログ]] [#l83a5356]
**[[MPS_Report>ログ収集いろいろ#e4a7bc64]] [#mbf12952]
*監視系 [#oabba159]
**各種リソース [#gbf18194]
***[[パフォーマンス カウンタ]] [#cf3ec39c]
[[こちら>パフォーマンス カウンタ]]を参照。
***Windowsタスクマネージャ [#g51bcec3]
WindowsOS付属の簡易的な各種リソース監視ツール。
-物理
--CPU
--[[物理メモリ>物理メモリ管理]]
--ネットワーク
-論理
--[[仮想メモリ>仮想メモリ管理]]
--プロセス
--スレッド
**プロセス監視 [#o6ab3a4f]
***Process Monitor [#n72fadf5]
プロセス監視(各種イベント監視)
-Windows Sysinternals > ダウンロード > プロセス > Process...
http://technet.microsoft.com/ja-jp/sysinternals/bb896645
>FileMon や Regmon を統合した、特定のカーネルの~
(ファイルシステム、レジストリ、プロセス/スレッド、ネット...
イベント(アクセス)のキャプチャフィルタ、ハイライト表示...
-参考
--[[トラブルシュートの例>初回が遅い!#tfc1f81b]]
--Process Monitor の基本的な使い方について - Qiita~
https://qiita.com/nanmei365/items/64c2b23aa49c0aa9f5e0
--Process Monitor を使用してシステムイベントをキャプチャ...
https://community.sophos.com/kb/ja-jp/119038
***Process Explorer [#m8c2fc85]
プロセス監視 / ハンドル数調査 / ユーザモードダンプ取得
-Windows Sysinternals > ダウンロード > プロセス > Process...
http://technet.microsoft.com/ja-jp/sysinternals/bb896653
--プロセスツリー、タイプ、使用しているDLL、ハンドル、~
イメージ(EXE)、性能情報、TCP/IPソケット、.NETバージョン...
様々な情報の確認できる。また、使用しているDLL、ハンドルの...
--プロセスの開始・終了、ユーザ・モード・プロセス・ダンプ...
--GDIオブジェクトの数、また、GDIオブジェクトが消費するプ...
(ただし、これにはWinDbgをインストールして、シンボルサー...
※ シンボルサーバにアクセスするためにはWinDbgが必要になる...
***Sysinternals Handle [#wac7e7c1]
-Windows Sysinternals > ダウンロード > プロセス > Handle~
http://technet.microsoft.com/ja-jp/sysinternals/bb896655~
このプログラムの GUI ベースのバージョンは、[[Process Expl...
***アプリケーション固有ログ [#m5b11535]
[[例えば>http://opentouryo.osscons.jp/index.php?%E6%A9%9F...
**DB監視 [#wad84151]
-[[SQL Server系>SQL Server 問題の分析方法]]
**WAS監視 [#p8a3220e]
-[[IISのログ]]
**クラスタ監視 [#wa82546f]
クラスタログ
**ネットワーク監視・プロファイル [#lfa663b2]
***ツール [#g8c2d67a]
-[[Wireshark>Wiresharkの操作方法]]
--パケットキャプチャとパケット分析
--管理:マクロ分析、プロファイル:ミクロ分析
***ログ [#m083bdcf]
-ネットワークモニタツール
--[[Wireshark>Wiresharkの操作方法]]
-負荷分散装置のログ
-ファイアウォール装置のログ
-スイッチのログ
*デバッグ ツールセット [#ie186d18]
**Debugging Tools for Windows [#vd4048ce]
***Windows Performance Recorder (WPR) [#mc9ff947]
トレースデータを採取するコンポーネント
***Windows Performance Analyzer (WPA) [#m8f1da19]
トレースデータを GUI で表すコンポーネント
-OS機能によるアプリのパフォーマンス測定 - @IT~
http://www.atmarkit.co.jp/fdotnet/chushin/vsperf_01/vsper...
-新しくなった Windows Performance Analyzer - Japan WDK Su...
http://blogs.msdn.com/b/jpwdkblog/archive/2014/11/28/wind...
**ライブ・デバッグ・ダンプ取得・分析 [#k6d92aff]
***[[WinDbg]] [#s581d480]
***CDB [#td8a5164]
***NTSD [#nbffbe63]
***KD [#d874e24d]
***,etc. [#a07574cd]
**IISライブ・デバッグ、ダンプ取得・分析 [#w71b9232]
***[[ADPlus]] [#l96fd278]
[[ADPlus]] : Auto Dump+
**アンマネージド・ヒープ解析 [#u83249cc]
***[[UMDH]] [#td11cbd2]
[[UMDH]]:User Mode Dump Heap
*プロファイラ [#j595e8e5]
**ユーザモード [#weac277d]
***Visual Studio [#o9189a2c]
-Visual Studioデバッガ
-VS2005パフォーマンスツール~
--パフォーマンス Visual Studio プロファイラでアプリケーシ...
http://msdn.microsoft.com/ja-jp/magazine/cc337887.aspx
-Visual Studioプロファイラ~
Visual Studio 2010 Premium / Ultimate付属のマネージド・コ...
***CLR Profiler [#a7c9eec5]
マネージド・コード・プロファイラ(メソッドの呼出回数・時...
-msdn.microsoft.com
--How To 情報 CLR プロファイラの使用方法~
http://msdn.microsoft.com/ja-jp/library/ff650691.aspx
--.NET ガベージ コレクション ヒープをプロファイリングする~
http://msdn.microsoft.com/ja-jp/magazine/ee309515.aspx
-CLRProfilerを用いたマネージヒープの調査 - Qiita~
https://qiita.com/mima_ita/items/bd35461bf8d5a8c1caf4
***[[SOS.dll>.NETのメモリ・リーク]](SOS拡張) [#wc33a7cb]
マネージド・コード・プロファイラ(ライブ・デバッグ & ダン...
***Managed Stack Explorer [#c1b893e4]
マネージド・コード・プロファイラ(スレッド ダンプ)
-Managed Stack Explorer~
http://mse.codeplex.com/
--マネージスレッドのダンプを取得可能。
--ハングやデッドロック箇所の調査などにも利用できる。
-.NET Framework スレッドダンプ Urabi~
http://www.jurabi.jp/blog/2010/01/922
>C#アプリでデットロックぽい問題が発生したと聞いて.NETでの...
>元ネタはここです。~
http://stackoverflow.com/questions/190236/how-do-i-make-a...
>Managed Stack Explorerを使う方法とWinDbgを使う方法紹介さ...
WinDbgはデバッカだし、簡単なManaged Stack Explorerを使う...
***DevPartner Studio [#x44595c8]
マネージド・コード・プロファイラ
***その他のマネージド・コード・プロファイラ [#i354c815]
-商用:dotTRACE~
http://www.jetbrains.com/profiler/index.html
-無償:NProf~
http://sourceforge.net/projects/nprof/
-無償:EQATEC Profiler~
http://www.eqatec.com/tools/profiler
***Rational PurifyPlus for Windows [#e4e4fea7]
アンマネージドコードプロファイラ
-IBM Rational PurifyPlus (ランタイム分析ツール) - Japan~
http://www-06.ibm.com/software/jp/rational/products/purif...
**カーネルモード [#d9762d76]
***Driver Verifier [#uac2c965]
カーネルモードドライバのデバッグ/メモリ分析
-Driver Verifier を使用して Windows ドライバをトラブルシ...
https://support.microsoft.com/ja-jp/kb/244617
***Memory Pool Monitor [#i010a5aa]
カーネルモードドライバのメモリ分析
***Desktop Heap Monitor [#qf3f8a28]
[[デスクトップ・ヒープ]]のメモリ分析
*メモリ・リーク [#ib2a61d9]
**タスクマネージャ [#b25b83fe]
***「パフォーマンス」タブ [#wd68026b]
【】内はVista以降
-合計(システム)~
リソースの数
--ハンドル
--スレッド
--プロセス
--【起動時間】
--【ページ・ファイル、コミット】
-物理メモリ~
物理メモリのサイズ
--合計
--利用可能【空きメモリ】:
---利用可能な物理メモリ(空き) → Memory\Available Bytes
---未使用ページリスト、ゼロページリスト、スタンバイ リス...
--システムキャッシュ【キャッシュ済み】:~
以下の次の 5 種類のワーキングセットの合計
---システム キャッシュ ページ
---ページ プール
---Ntoskrnl.exe 内のページング可能なコードとデータ
---デバイス ドライバ内のページング可能なコードとデータ
---システム マップドビュー
-コミット チャージ~
仮想メモリのサイズ → Memory\Commited Bytes
--合計
--制限値
--最大値
-カーネル メモリ~
カーネル モードで使用しているメモリのサイズ
--合計
--ページ
--非ページ
***「プロセス」タブ [#k49b6bb2]
-仮想メモリ
--仮想メモリサイズ【メモリ - コミット サイズ】~
仮想メモリのサイズ(非共有メモリの仮想メモリの使用量)~
= コミットされたサイズ、つまりプライベートバイト → Proces...
--ページ プール【メモリ - ページ プール】~
プロセスのページ プールのサイズ
--非ページ プール【メモリ - 非ページ プール】~
プロセスの非ページ プールのサイズ
-物理メモリ(ワーキング セット)~
以下のメモリ使用量は、トリミング可能なスペースも含めたワ...
--メモリ使用量【メモリ - ワーキング セット】~
当該プロセスの物理メモリ使用量【ワーキング セット】のサイズ
--最大メモリ使用量【メモリ - ピーク ワーキング セット】~
当該プロセスを起動してから現在までにおける、物理メモリ使...
--メモリ デルタ【メモリ - ワーキング セット デルタ】~
プロセスによって使用される物理メモリ使用量【ワーキング セ...
--【メモリ - プライベート ワーキング セット】~
プロセスが使用しているワーキング セットのうち、
他のプロセスと共有できない(=トリミングできない)容量だ...
※ XP、2003には存在しない。
-リソース
--ハンドルの数
--スレッドの数
--USERオブジェクト
--GDIオブジェクト
***参考資料 [#rb689104]
-必要メモリ・サイズを見極める - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/166memoryusage...
-最適なページ・ファイル・サイズを知るには - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/076pgfilesize/...
-タスク・マネージャのパフォーマンス・タブの見方(Windows ...
http://www.atmarkit.co.jp/fwin2k/win2ktips/1209taskv/task...
-タスク・マネージャのパフォーマンス・タブの見方(Windows ...
http://www.atmarkit.co.jp/fwin2k/win2ktips/1219taskv7/tas...
-タスク マネージャのメモリ列の意味~
http://windows.microsoft.com/ja-JP/windows-vista/What-do-...
**[[パフォーマンス カウンタ]] [#hc43b0ca]
[[こちら>パフォーマンス カウンタ#dd0600b7]]を参照。
**ヒープ解析 [#ze4de53c]
***アンマネージド [#n9a6779a]
[[UMDH]]:User Mode Dump Heap
***マネージド [#g5cf2388]
-.NETのAPI
--GC.GetTotalMemory メソッド~
http://msdn.microsoft.com/ja-jp/library/system.gc.gettota...
>現在割り当てられていると思われるバイト数を取得する。
--GC.Collect メソッド~
http://msdn.microsoft.com/ja-jp/library/system.gc.collect...
>強制的にガベージ コレクションを行う(推奨しない)。
System.GC.Collect(); // GC強制実行
System.GC.WaitForPendingFinalizers(); // 非同期ファイナ...
System.GC.Collect(); // GC強制実行(ファイナライザ完了後...
-[[マネージド・プロファイラ>#weac277d]]
--[[Visual Studioプロファイラ>#o9189a2c]]
--[[CLR Profiler>#a7c9eec5]]
--[[SOS.dll(SOS拡張)>#wc33a7cb]]
--[[Managed Stack Explorer>#c1b893e4]]
--[[DevPartner Studio>#x44595c8]]
**ダンプ解析 [#c07a7548]
***アンマネージド [#af66fd43]
-ダンプ+WinDbg
***マネージド [#p29ad573]
-ダンプ+WinDbg+[[SOS拡張(SOS.dll)>.NETのメモリ・リー...
**カーネル メモリ スペース [#y8c4f7b3]
-Kernel Memory Space Analyzer~
http://www.microsoft.com/en-us/download/details.aspx?id=1...
>一般ユーザーのために設計されていないことに注意してくださ...
**カーネル オブジェクトのハンドル [#gcedae15]
***タスクマネージャ [#i555696c]
***パフォーマンスカウンタ [#pa44bd4d]
***Sysinternals Handle [#q4430eba]
カーネル オブジェクトのハンドル(リソースリーク)確認
-Windows Sysinternals > ダウンロード > プロセス > Handle~
http://technet.microsoft.com/ja-jp/sysinternals/bb896655~
このプログラムの GUI ベースのバージョンは、[[Process Expl...
**メモリ プール(ページ プールと非ページ プール) [#ge3f4...
***タスクマネージャ、パフォーマンスカウンタ [#f74ed082]
***Memory Pool Monitor ユーティリティ (Poolmon.exe) [#yfb...
ページ プールと非ページ プール、およびターミナル サービス...
使用されるメモリ プールからのメモリ割り当てに関してOSが収...
これによりカーネルモードで動作するモジュール(ドライバ)...
-Memory Pool Monitor (Poolmon.exe) を使用して~
カーネル モードのメモリ リークのトラブルシューティングを...
http://support.microsoft.com/kb/177415/ja
-サードパーティ製のドライバによって使用されているプール ...
http://support.microsoft.com/kb/298102/ja
-Pool tag list - The troubleshooters and problem solvers....
http://blogs.technet.com/b/yongrhee/archive/2009/06/24/po...
***WinDbg+Kdの!poolused拡張コマンド [#e6057348]
***Driver Verifier [#s2550e4c]
プール・トラッキング機能を有効にした状態で(プールトラッ...
-カーネル メモリダンプや、
-完全メモリダンプで
カーネル メモリ スペースをダンプ出力し、これを分析するこ...
-Driver Verifier を使用して Windows ドライバをトラブルシ...
http://support.microsoft.com/kb/244617/ja
-Driver Verifier エラー検出用のドライバー開発者向けツール~
http://msdn.microsoft.com/ja-jp/windows/hardware/gg487310
***Sysinternals Notmyfault [#t6e4b084]
-仮想化した世界 Sysinternals 「Notmyfault」~
http://man-kato.blogspot.jp/2011/11/sysinternals-notmyfau...
>基本的にはブルースクリーンを発生させるためのツールである...
**[[デスクトップ・ヒープ]] [#wadec027]
***Desktop Heap Monitor [#va8e9eb5]
-[[デスクトップ・ヒープ]]領域 - Desktop Heap Monitor~
http://yakushima-tonbo.com/windows/etc/dheapmon.html
-How many application pools can you cope with~
Never doubt thy debugger - Site Home - MSDN Blogs~
http://blogs.msdn.com/b/carloc/archive/2008/08/11/how-man...
>Desktop Heap Monitorで、Service-0x0-3e7$\Default の情報...
***Windbg+LiveKdの!dskheap拡張コマンド [#lcc18d3e]
-Windows Sysinternals > ダウンロード > システム情報 > Liv...
http://technet.microsoft.com/ja-jp/sysinternals/bb897415
***チューニング方針 [#r5985df9]
当該デスクトップのUsed Rateの合計が100%以下であれば他の...
***チューニング方法 [#m9312988]
-領域のサイズ変更を伴わないチューニング
--USERオブジェクトなどのリークがあった場合は対応する。
--例外的に、サーバのSession0のインタラクティブ・ヒープが...
サーバ上でサービスがLocalSystem アカウントで実行されてい...
-領域のサイズ変更を伴うチューニング
--サーバのSession0のノン・インタラクティブ・ヒープが枯渇...
---同時実行サービス数が多い~
起動の度にウィンドウ・ステーションとセッション、対応する...
なお、Vista以降では、この問題は発生しない(自動的にサイズ...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sessi...
---ユーザサービスから多くのプロセスを起動しているシステム~
子プロセスは親プロセスの設定を継承するため、同一のウィン...
このため、サービスから新たなプロセスを起動した場合、当該...
対応:必要に応じて、「ノン・インターラクティブ・ヒープの...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sessi...
SharedSectionの1番目:「標準ヒープの容量」のサイズ~
SharedSectionの2番目:「インターラクティブ・ヒープの容量...
---ターミナル・サービスのデクストップ・ヒープが枯渇してい...
ターミナル・サービスでは「全[[デスクトップ・ヒープ]]の容...
これを拡大すると、ターミナル・サービスの同時接続可能セッ...
-@IT:Windows TIPS > ターミナル・サービスでアプリケーシ...
http://www.atmarkit.co.jp/fwin2k/win2ktips/458ts2003err/t...
**USERオブジェクト、GDIオブジェクト [#b111a67e]
-USERオブジェクト:[[デスクトップ・ヒープ]]を消費
-GDIオブジェクト:ページ プール、セッション プールを消費
***タスクマネージャ [#bca6c2a3]
***Sysinternals Process Explorer [#rff09c9a]
-Windows Sysinternals > ダウンロード > プロセス > Process...
http://technet.microsoft.com/ja-jp/sysinternals/bb896653
>GDIオブジェクトの数、また、GDIオブジェクトが消費するプー...
***Sysinternals Testlimit [#w45888b4]
-Download Testlimit.zip~
http://www.filerepair.ca/downloads/t/te/Testlimit.zip-DLL...
>Sysinternals の Testlimitユーティリティを実行すると、USE...
簡単に確認することができる(可能な限りまUSERオブジェクト...
-infoq .NETのメモリリークに対処する~
http://www.infoq.com/jp/news/2009/11/Memory-Leaks-.NET
>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current...
USERProcessHandleQuotaとGDIProcessHandleQuotaには、ひとつ...
最大のUSERオブジェクトとGDIオブジェクトの数が設定されてい...
#1つのセッションで作成できる USERオブジェクト、GDIオブジ...
***GDIView [#s10b541a]
-View GDI handles/resources list and detect GDI leaks~
http://www.nirsoft.net/utils/gdi_handles.html
*その他 [#n956afc7]
**[[ログ収集いろいろ]] [#t6cce1a5]
**[[ダンプ取得に使用するツールの一覧]] [#j63663f8]
----
Tags: [[:インフラストラクチャ]], [[:Windows]], [[:障害対...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>障害発生時の分析]]
* 目次 [#p7fb3757]
#contents
*概要 [#pbf59353]
*ツールの利用ポイント [#x78d9125]
監視・プロファイル ツールやサポートツールは、「[[サーバー...
-原因の把握、解決策の決定
-サポートを活用して解決策を決定する。
の部分で使用します。
障害対応のノウハウと利用可能なツールを把握しておくことで、
-問題発生時に、セルフ・サポートが可能になります。
-また、セルフ・サポートが困難な場合もサポート・エンジニア...
--サポート・エンジニアと連携可能な範囲はどこか?
--サポート・エンジニアに提供してもらえる情報は何か?
--サポート・エンジニアに提供すべき情報は何か?
*システム情報収集 [#x9ed5bd5]
**[[イベント・ログ]] [#l83a5356]
**[[MPS_Report>ログ収集いろいろ#e4a7bc64]] [#mbf12952]
*監視系 [#oabba159]
**各種リソース [#gbf18194]
***[[パフォーマンス カウンタ]] [#cf3ec39c]
[[こちら>パフォーマンス カウンタ]]を参照。
***Windowsタスクマネージャ [#g51bcec3]
WindowsOS付属の簡易的な各種リソース監視ツール。
-物理
--CPU
--[[物理メモリ>物理メモリ管理]]
--ネットワーク
-論理
--[[仮想メモリ>仮想メモリ管理]]
--プロセス
--スレッド
**プロセス監視 [#o6ab3a4f]
***Process Monitor [#n72fadf5]
プロセス監視(各種イベント監視)
-Windows Sysinternals > ダウンロード > プロセス > Process...
http://technet.microsoft.com/ja-jp/sysinternals/bb896645
>FileMon や Regmon を統合した、特定のカーネルの~
(ファイルシステム、レジストリ、プロセス/スレッド、ネット...
イベント(アクセス)のキャプチャフィルタ、ハイライト表示...
-参考
--[[トラブルシュートの例>初回が遅い!#tfc1f81b]]
--Process Monitor の基本的な使い方について - Qiita~
https://qiita.com/nanmei365/items/64c2b23aa49c0aa9f5e0
--Process Monitor を使用してシステムイベントをキャプチャ...
https://community.sophos.com/kb/ja-jp/119038
***Process Explorer [#m8c2fc85]
プロセス監視 / ハンドル数調査 / ユーザモードダンプ取得
-Windows Sysinternals > ダウンロード > プロセス > Process...
http://technet.microsoft.com/ja-jp/sysinternals/bb896653
--プロセスツリー、タイプ、使用しているDLL、ハンドル、~
イメージ(EXE)、性能情報、TCP/IPソケット、.NETバージョン...
様々な情報の確認できる。また、使用しているDLL、ハンドルの...
--プロセスの開始・終了、ユーザ・モード・プロセス・ダンプ...
--GDIオブジェクトの数、また、GDIオブジェクトが消費するプ...
(ただし、これにはWinDbgをインストールして、シンボルサー...
※ シンボルサーバにアクセスするためにはWinDbgが必要になる...
***Sysinternals Handle [#wac7e7c1]
-Windows Sysinternals > ダウンロード > プロセス > Handle~
http://technet.microsoft.com/ja-jp/sysinternals/bb896655~
このプログラムの GUI ベースのバージョンは、[[Process Expl...
***アプリケーション固有ログ [#m5b11535]
[[例えば>http://opentouryo.osscons.jp/index.php?%E6%A9%9F...
**DB監視 [#wad84151]
-[[SQL Server系>SQL Server 問題の分析方法]]
**WAS監視 [#p8a3220e]
-[[IISのログ]]
**クラスタ監視 [#wa82546f]
クラスタログ
**ネットワーク監視・プロファイル [#lfa663b2]
***ツール [#g8c2d67a]
-[[Wireshark>Wiresharkの操作方法]]
--パケットキャプチャとパケット分析
--管理:マクロ分析、プロファイル:ミクロ分析
***ログ [#m083bdcf]
-ネットワークモニタツール
--[[Wireshark>Wiresharkの操作方法]]
-負荷分散装置のログ
-ファイアウォール装置のログ
-スイッチのログ
*デバッグ ツールセット [#ie186d18]
**Debugging Tools for Windows [#vd4048ce]
***Windows Performance Recorder (WPR) [#mc9ff947]
トレースデータを採取するコンポーネント
***Windows Performance Analyzer (WPA) [#m8f1da19]
トレースデータを GUI で表すコンポーネント
-OS機能によるアプリのパフォーマンス測定 - @IT~
http://www.atmarkit.co.jp/fdotnet/chushin/vsperf_01/vsper...
-新しくなった Windows Performance Analyzer - Japan WDK Su...
http://blogs.msdn.com/b/jpwdkblog/archive/2014/11/28/wind...
**ライブ・デバッグ・ダンプ取得・分析 [#k6d92aff]
***[[WinDbg]] [#s581d480]
***CDB [#td8a5164]
***NTSD [#nbffbe63]
***KD [#d874e24d]
***,etc. [#a07574cd]
**IISライブ・デバッグ、ダンプ取得・分析 [#w71b9232]
***[[ADPlus]] [#l96fd278]
[[ADPlus]] : Auto Dump+
**アンマネージド・ヒープ解析 [#u83249cc]
***[[UMDH]] [#td11cbd2]
[[UMDH]]:User Mode Dump Heap
*プロファイラ [#j595e8e5]
**ユーザモード [#weac277d]
***Visual Studio [#o9189a2c]
-Visual Studioデバッガ
-VS2005パフォーマンスツール~
--パフォーマンス Visual Studio プロファイラでアプリケーシ...
http://msdn.microsoft.com/ja-jp/magazine/cc337887.aspx
-Visual Studioプロファイラ~
Visual Studio 2010 Premium / Ultimate付属のマネージド・コ...
***CLR Profiler [#a7c9eec5]
マネージド・コード・プロファイラ(メソッドの呼出回数・時...
-msdn.microsoft.com
--How To 情報 CLR プロファイラの使用方法~
http://msdn.microsoft.com/ja-jp/library/ff650691.aspx
--.NET ガベージ コレクション ヒープをプロファイリングする~
http://msdn.microsoft.com/ja-jp/magazine/ee309515.aspx
-CLRProfilerを用いたマネージヒープの調査 - Qiita~
https://qiita.com/mima_ita/items/bd35461bf8d5a8c1caf4
***[[SOS.dll>.NETのメモリ・リーク]](SOS拡張) [#wc33a7cb]
マネージド・コード・プロファイラ(ライブ・デバッグ & ダン...
***Managed Stack Explorer [#c1b893e4]
マネージド・コード・プロファイラ(スレッド ダンプ)
-Managed Stack Explorer~
http://mse.codeplex.com/
--マネージスレッドのダンプを取得可能。
--ハングやデッドロック箇所の調査などにも利用できる。
-.NET Framework スレッドダンプ Urabi~
http://www.jurabi.jp/blog/2010/01/922
>C#アプリでデットロックぽい問題が発生したと聞いて.NETでの...
>元ネタはここです。~
http://stackoverflow.com/questions/190236/how-do-i-make-a...
>Managed Stack Explorerを使う方法とWinDbgを使う方法紹介さ...
WinDbgはデバッカだし、簡単なManaged Stack Explorerを使う...
***DevPartner Studio [#x44595c8]
マネージド・コード・プロファイラ
***その他のマネージド・コード・プロファイラ [#i354c815]
-商用:dotTRACE~
http://www.jetbrains.com/profiler/index.html
-無償:NProf~
http://sourceforge.net/projects/nprof/
-無償:EQATEC Profiler~
http://www.eqatec.com/tools/profiler
***Rational PurifyPlus for Windows [#e4e4fea7]
アンマネージドコードプロファイラ
-IBM Rational PurifyPlus (ランタイム分析ツール) - Japan~
http://www-06.ibm.com/software/jp/rational/products/purif...
**カーネルモード [#d9762d76]
***Driver Verifier [#uac2c965]
カーネルモードドライバのデバッグ/メモリ分析
-Driver Verifier を使用して Windows ドライバをトラブルシ...
https://support.microsoft.com/ja-jp/kb/244617
***Memory Pool Monitor [#i010a5aa]
カーネルモードドライバのメモリ分析
***Desktop Heap Monitor [#qf3f8a28]
[[デスクトップ・ヒープ]]のメモリ分析
*メモリ・リーク [#ib2a61d9]
**タスクマネージャ [#b25b83fe]
***「パフォーマンス」タブ [#wd68026b]
【】内はVista以降
-合計(システム)~
リソースの数
--ハンドル
--スレッド
--プロセス
--【起動時間】
--【ページ・ファイル、コミット】
-物理メモリ~
物理メモリのサイズ
--合計
--利用可能【空きメモリ】:
---利用可能な物理メモリ(空き) → Memory\Available Bytes
---未使用ページリスト、ゼロページリスト、スタンバイ リス...
--システムキャッシュ【キャッシュ済み】:~
以下の次の 5 種類のワーキングセットの合計
---システム キャッシュ ページ
---ページ プール
---Ntoskrnl.exe 内のページング可能なコードとデータ
---デバイス ドライバ内のページング可能なコードとデータ
---システム マップドビュー
-コミット チャージ~
仮想メモリのサイズ → Memory\Commited Bytes
--合計
--制限値
--最大値
-カーネル メモリ~
カーネル モードで使用しているメモリのサイズ
--合計
--ページ
--非ページ
***「プロセス」タブ [#k49b6bb2]
-仮想メモリ
--仮想メモリサイズ【メモリ - コミット サイズ】~
仮想メモリのサイズ(非共有メモリの仮想メモリの使用量)~
= コミットされたサイズ、つまりプライベートバイト → Proces...
--ページ プール【メモリ - ページ プール】~
プロセスのページ プールのサイズ
--非ページ プール【メモリ - 非ページ プール】~
プロセスの非ページ プールのサイズ
-物理メモリ(ワーキング セット)~
以下のメモリ使用量は、トリミング可能なスペースも含めたワ...
--メモリ使用量【メモリ - ワーキング セット】~
当該プロセスの物理メモリ使用量【ワーキング セット】のサイズ
--最大メモリ使用量【メモリ - ピーク ワーキング セット】~
当該プロセスを起動してから現在までにおける、物理メモリ使...
--メモリ デルタ【メモリ - ワーキング セット デルタ】~
プロセスによって使用される物理メモリ使用量【ワーキング セ...
--【メモリ - プライベート ワーキング セット】~
プロセスが使用しているワーキング セットのうち、
他のプロセスと共有できない(=トリミングできない)容量だ...
※ XP、2003には存在しない。
-リソース
--ハンドルの数
--スレッドの数
--USERオブジェクト
--GDIオブジェクト
***参考資料 [#rb689104]
-必要メモリ・サイズを見極める - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/166memoryusage...
-最適なページ・ファイル・サイズを知るには - @IT~
http://www.atmarkit.co.jp/fwin2k/win2ktips/076pgfilesize/...
-タスク・マネージャのパフォーマンス・タブの見方(Windows ...
http://www.atmarkit.co.jp/fwin2k/win2ktips/1209taskv/task...
-タスク・マネージャのパフォーマンス・タブの見方(Windows ...
http://www.atmarkit.co.jp/fwin2k/win2ktips/1219taskv7/tas...
-タスク マネージャのメモリ列の意味~
http://windows.microsoft.com/ja-JP/windows-vista/What-do-...
**[[パフォーマンス カウンタ]] [#hc43b0ca]
[[こちら>パフォーマンス カウンタ#dd0600b7]]を参照。
**ヒープ解析 [#ze4de53c]
***アンマネージド [#n9a6779a]
[[UMDH]]:User Mode Dump Heap
***マネージド [#g5cf2388]
-.NETのAPI
--GC.GetTotalMemory メソッド~
http://msdn.microsoft.com/ja-jp/library/system.gc.gettota...
>現在割り当てられていると思われるバイト数を取得する。
--GC.Collect メソッド~
http://msdn.microsoft.com/ja-jp/library/system.gc.collect...
>強制的にガベージ コレクションを行う(推奨しない)。
System.GC.Collect(); // GC強制実行
System.GC.WaitForPendingFinalizers(); // 非同期ファイナ...
System.GC.Collect(); // GC強制実行(ファイナライザ完了後...
-[[マネージド・プロファイラ>#weac277d]]
--[[Visual Studioプロファイラ>#o9189a2c]]
--[[CLR Profiler>#a7c9eec5]]
--[[SOS.dll(SOS拡張)>#wc33a7cb]]
--[[Managed Stack Explorer>#c1b893e4]]
--[[DevPartner Studio>#x44595c8]]
**ダンプ解析 [#c07a7548]
***アンマネージド [#af66fd43]
-ダンプ+WinDbg
***マネージド [#p29ad573]
-ダンプ+WinDbg+[[SOS拡張(SOS.dll)>.NETのメモリ・リー...
**カーネル メモリ スペース [#y8c4f7b3]
-Kernel Memory Space Analyzer~
http://www.microsoft.com/en-us/download/details.aspx?id=1...
>一般ユーザーのために設計されていないことに注意してくださ...
**カーネル オブジェクトのハンドル [#gcedae15]
***タスクマネージャ [#i555696c]
***パフォーマンスカウンタ [#pa44bd4d]
***Sysinternals Handle [#q4430eba]
カーネル オブジェクトのハンドル(リソースリーク)確認
-Windows Sysinternals > ダウンロード > プロセス > Handle~
http://technet.microsoft.com/ja-jp/sysinternals/bb896655~
このプログラムの GUI ベースのバージョンは、[[Process Expl...
**メモリ プール(ページ プールと非ページ プール) [#ge3f4...
***タスクマネージャ、パフォーマンスカウンタ [#f74ed082]
***Memory Pool Monitor ユーティリティ (Poolmon.exe) [#yfb...
ページ プールと非ページ プール、およびターミナル サービス...
使用されるメモリ プールからのメモリ割り当てに関してOSが収...
これによりカーネルモードで動作するモジュール(ドライバ)...
-Memory Pool Monitor (Poolmon.exe) を使用して~
カーネル モードのメモリ リークのトラブルシューティングを...
http://support.microsoft.com/kb/177415/ja
-サードパーティ製のドライバによって使用されているプール ...
http://support.microsoft.com/kb/298102/ja
-Pool tag list - The troubleshooters and problem solvers....
http://blogs.technet.com/b/yongrhee/archive/2009/06/24/po...
***WinDbg+Kdの!poolused拡張コマンド [#e6057348]
***Driver Verifier [#s2550e4c]
プール・トラッキング機能を有効にした状態で(プールトラッ...
-カーネル メモリダンプや、
-完全メモリダンプで
カーネル メモリ スペースをダンプ出力し、これを分析するこ...
-Driver Verifier を使用して Windows ドライバをトラブルシ...
http://support.microsoft.com/kb/244617/ja
-Driver Verifier エラー検出用のドライバー開発者向けツール~
http://msdn.microsoft.com/ja-jp/windows/hardware/gg487310
***Sysinternals Notmyfault [#t6e4b084]
-仮想化した世界 Sysinternals 「Notmyfault」~
http://man-kato.blogspot.jp/2011/11/sysinternals-notmyfau...
>基本的にはブルースクリーンを発生させるためのツールである...
**[[デスクトップ・ヒープ]] [#wadec027]
***Desktop Heap Monitor [#va8e9eb5]
-[[デスクトップ・ヒープ]]領域 - Desktop Heap Monitor~
http://yakushima-tonbo.com/windows/etc/dheapmon.html
-How many application pools can you cope with~
Never doubt thy debugger - Site Home - MSDN Blogs~
http://blogs.msdn.com/b/carloc/archive/2008/08/11/how-man...
>Desktop Heap Monitorで、Service-0x0-3e7$\Default の情報...
***Windbg+LiveKdの!dskheap拡張コマンド [#lcc18d3e]
-Windows Sysinternals > ダウンロード > システム情報 > Liv...
http://technet.microsoft.com/ja-jp/sysinternals/bb897415
***チューニング方針 [#r5985df9]
当該デスクトップのUsed Rateの合計が100%以下であれば他の...
***チューニング方法 [#m9312988]
-領域のサイズ変更を伴わないチューニング
--USERオブジェクトなどのリークがあった場合は対応する。
--例外的に、サーバのSession0のインタラクティブ・ヒープが...
サーバ上でサービスがLocalSystem アカウントで実行されてい...
-領域のサイズ変更を伴うチューニング
--サーバのSession0のノン・インタラクティブ・ヒープが枯渇...
---同時実行サービス数が多い~
起動の度にウィンドウ・ステーションとセッション、対応する...
なお、Vista以降では、この問題は発生しない(自動的にサイズ...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sessi...
---ユーザサービスから多くのプロセスを起動しているシステム~
子プロセスは親プロセスの設定を継承するため、同一のウィン...
このため、サービスから新たなプロセスを起動した場合、当該...
対応:必要に応じて、「ノン・インターラクティブ・ヒープの...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sessi...
SharedSectionの1番目:「標準ヒープの容量」のサイズ~
SharedSectionの2番目:「インターラクティブ・ヒープの容量...
---ターミナル・サービスのデクストップ・ヒープが枯渇してい...
ターミナル・サービスでは「全[[デスクトップ・ヒープ]]の容...
これを拡大すると、ターミナル・サービスの同時接続可能セッ...
-@IT:Windows TIPS > ターミナル・サービスでアプリケーシ...
http://www.atmarkit.co.jp/fwin2k/win2ktips/458ts2003err/t...
**USERオブジェクト、GDIオブジェクト [#b111a67e]
-USERオブジェクト:[[デスクトップ・ヒープ]]を消費
-GDIオブジェクト:ページ プール、セッション プールを消費
***タスクマネージャ [#bca6c2a3]
***Sysinternals Process Explorer [#rff09c9a]
-Windows Sysinternals > ダウンロード > プロセス > Process...
http://technet.microsoft.com/ja-jp/sysinternals/bb896653
>GDIオブジェクトの数、また、GDIオブジェクトが消費するプー...
***Sysinternals Testlimit [#w45888b4]
-Download Testlimit.zip~
http://www.filerepair.ca/downloads/t/te/Testlimit.zip-DLL...
>Sysinternals の Testlimitユーティリティを実行すると、USE...
簡単に確認することができる(可能な限りまUSERオブジェクト...
-infoq .NETのメモリリークに対処する~
http://www.infoq.com/jp/news/2009/11/Memory-Leaks-.NET
>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current...
USERProcessHandleQuotaとGDIProcessHandleQuotaには、ひとつ...
最大のUSERオブジェクトとGDIオブジェクトの数が設定されてい...
#1つのセッションで作成できる USERオブジェクト、GDIオブジ...
***GDIView [#s10b541a]
-View GDI handles/resources list and detect GDI leaks~
http://www.nirsoft.net/utils/gdi_handles.html
*その他 [#n956afc7]
**[[ログ収集いろいろ]] [#t6cce1a5]
**[[ダンプ取得に使用するツールの一覧]] [#j63663f8]
----
Tags: [[:インフラストラクチャ]], [[:Windows]], [[:障害対...
ページ名: