Upload
kazushi-kamegawa
View
1.344
Download
0
Embed Size (px)
DESCRIPTION
Performance tuning the first and tools demo.
Citation preview
自己紹介 かめがわ かずし(会社員) /
kkamegawa(hatena/twitter/Facebookなど) Microsoft MVP for Visual Studio 主に@ITさんでいろいろ書か
せてもらっています。今はTFS/ALM関係の話http://www.atmarkit.co.jp/ait/articles/1303/01/news082.html第1回 TFS Expressで始めるソース・コード管理
今回はアプリケーションのギアを上げる話http://www.atmarkit.co.jp/fdotnet/chushin/vsperf_index/index.html
困っていませんか?
手元では速いのに本番では遅い…
24コアあるサーバーなのに2~3しか働い
ていない?
性能調査用ログ追加が大変
ボトルネックの場所がわからない
高価なEditionじゃないと調べられない?
どこまでやればいいかわからない
Performance Tuning Everywhere
OS設定,プログラム内で用意されたパラメータ変更設定変更で改善
特定のモジュールの一部の改善を行う(並列,並行,キャッシュ)プログラムで改善
ネットワーク、ディスクアクセスを減らす方式を改善
お金が許す限り何でもやる(サーバ/メモリ/CPU追加など)ハードウェアで改善
Performance Goal Case By Case
• ネットワークレイテンシ,使用メモリWebサーバ
• 使用メモリ量,CPU,DiskI/O,Network帯域
データベース
• JavaScriptのパフォーマンスブラウザ
• 使用メモリ,起動速度リッチクライアント
過去の話が正しいとは限らない
• プログラムでキャッシュ→SSD登場(キャッシュするより書く)ディスクは遅い
• 難しい並列、非同期がライブラリ、コンパイラのおかげで身近に(理解してないとはまる)並列・並行
• 化ける、到達しない→ほとんどない(10数年経験していない)ネットワーク
主なパフォーマンスカウンタ種類
名前 説明.NET CLR Memory .NETアプリケーションで使用しているヒープおよび各
世代別GCの情報を取得することができる。ASP.NET Application ASP.NETで実行されているアプリケーションの性能情
報を取得することができる。Physical Disk 物理ディスクの書き込み、読みこみ、処理待ち情報を
取得することができる。Process Windowsで実行されている各プロセスの情報を取得す
ることができる。Private Bytesが増加傾向であればメモリリークを疑ってみる。
ServiceModelService
3.0(.NET 3.5x)と4.0(.NET 4.x)がある。WCFを使う場合はみるとよい。
MSが配布するツール(無償) Windows SDK付属
Xperf.exe パフォーマンスレコーダー Windows Performance Analyzer
CLR Profilerhttp://www.microsoft.com/en-us/download/details.aspx?id=16273
PerfMonitorhttp://bcl.codeplex.com/wikipage?title=PerfMonitor&referringTitle=Home
PerfViewhttp://www.microsoft.com/en-us/download/details.aspx?id=28567
Process Explorerhttp://technet.microsoft.com/ja-jp/sysinternals/bb896653.aspx
Visual Studio内蔵 エディションごとの機能比較
http://www.microsoft.com/visualstudio/jpn/products/compare
Web Performance Test 負荷テスト
JavaScriptプロファイラーWindowsストアアプリケーションのみ対応 Visual Studio 2012 Update2の新機能
Webテスト用ツール Web Performance TestはUltimateのみだが、いくつか
無償ツールもある。Apache JMeter
http://jmeter.apache.org/Microsoft製Web Capacity Analytics Tool
http://www.iis.net/downloads/community/2007/05/wcat-63-(x64)メンテされているかどうか?(IIS 7まで確認済み)
単体プロファイラー(有償) JetBrains dotTracer
https://www.jetbrains.com/profiler/
NDependhttp://www.ndepend.com/
Redgate ANTS Memory Profilerhttp://www.red-gate.com/products/dotnet-development/ants-memory-profiler/
.NET Memory Profilerhttp://memprofiler.com/
単体プロファイラー(無償) EQATEC Profiler
http://www.eqatec.com/Profiler/Home.aspx
Slimtunehttp://code.google.com/p/slimtune/
ソフトウェア特化型 SQL Server Profiler
http://msdn.microsoft.com/ja-jp/library/ms181091.aspx
まとめ よくある「三秒ルール」をそのまま受け入れないように
しよう(早いに越したことはないし、遅いものは遅い)。
手当たり次第にログ入れるのではなく、ツールを使ってボトルネックを探ろう
時代とともに常識は変わる
参考資料 @IT-アプリケーションのギアを上げよう
http://www.atmarkit.co.jp/fdotnet/chushin/vsperf_index/index.html
Event Tracing for Windows (ETW)http://blogs.msdn.com/b/jpwdkblog/archive/2011/12/27/event-tracing-for-windows-etw.aspx
Pro .NET Performancehttp://www.apress.com/9781430244585
Apress.comより引用