Upload
developers-summit
View
3.023
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
日本コンピュウェア株式会社
シニアソリューションアーキテクト
福田慎
2012年2月16日
テスト革命! パフォーマンステストの 画期的アプローチ
アジェンダ
1. パフォーマンステストとは?
2.より簡単に、より効果的に問題の原因を分析するは?
3.より簡単に、より効果的に負荷をかける方法は?
4. 最も効果的なパフォーマンステストとは?
パフォーマンステストとは?
3
Web のパフォーマンスは ビジネスの成果に直結
Source: Steve Souders @ Velocity Conference 2009 http://radar.oreilly.com/2009/07/velocity-making-your-site-fast.html
2 秒のレスポンスタイム低下 4.3 ユーザあたりの 売り上げが減少
%
400 ミリ秒の遅延
0.59 % ユーザあたりの 検索回数が減少
50 % 訪問回数あたりのページ参照回数が増加
ユーザが読み込み 時間の速いページを 経験した場合、
ページ読み込み時間を 7 秒から 2 秒に 短縮した場合、
売り上げ の増加 7–12 %
ハードウエア 費用の削減 50 %
4
まだまだ大きい「地域格差」
5
5
5
クラウド
プライベート パブリック
なぜパフォーマンス管理は難しくなったのか
従業員
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネント
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
6
複雑化するデータセンター
仮想化 WAN最適化
他システムとの連携
複雑化するインターネット環境
クラウド SaaS CDN
携帯端末
クラウド
プライベート パブリック
パフォーマンステストの定義
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネント
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
7
負荷をかける
負荷テスト用 仮想ユーザ
パフォーマンスを
分析する
クラウド
プライベート パブリック
パフォーマンステストの現状
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネント
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
8
負荷をかける
CPU使用率・
メモリ使用率
Webサーバ
アクセス数 DB監視
負荷テスト ツールを設置
クラウド
プライベート パブリック
パフォーマンステストの課題
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネン
ト
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
9
負荷をかける
CPU使用率・
メモリ使用率
Webサーバ
アクセス数 DB監視
負荷テスト ツールを設置
問題の原因が 分からない・・
推測に基づいた チューニング
クラウド環境の テストができない
不要なリソースの追加
ファイヤウォール内の ユーザしか再現できない
テスト期間が長期に及ぶ
地域毎のパフォー マンスの差が 把握できない
負荷をかけるために、 多数のサーバの設置が
必要
クラウド
プライベート パブリック
パフォーマンステストをより効果的にするには
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネン
ト
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
10
負荷をかける
CPU使用率・
メモリ使用率
Webサーバ
アクセス数 DB監視
負荷テスト
ツールを設置
より簡単に、 より効果的に 問題の原因を 分析するには?
より簡単に、 より効果的に 負荷をかける
方法は?
より簡単に、より効果的に 問題の原因を分析するは?
11
負荷テスト時のパフォーマンス分析は難しい・・・
Webサーバ アプリケーション データベース
×
どのトランザクションが、どこで、いつエラーになったのか・・・
どこがボトルネックになっているのか・・・
CPU使用率?
アプリのログ?
Webサーバのログ? ネットワーク
使用率?
12
パフォーマンス分析の次のトレンドは?
13 1993
1995
2004
2000
2007
2012
サーバ
パフォーマンス分析
ネットワーク
パフォーマンス分析
Java/.NET
パフォーマンス分析
エンドユーザ
レスポンス分析
ビジネス
サービス分析 ?
クラウド
プライベート パブリック
サーバパフォーマンス分析
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネン
ト
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
14
CPU使用率・
メモリ使用率
Webサーバ
アクセス数 DB監視
クラウド
プライベート パブリック
エンドユーザレスポンスの分析
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネント
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
15
エンドユーザレスポンスを計測する
クラウド
プライベート パブリック
パフォーマンス分析の新しいトレンド 「トランザクションパス分析」
メインフレーム
ストレージ
データセンター
Web サービス
携帯 コンポーネン
ト
Web サーバ
App サーバ
DB サーバ
ロード バランサ
WAN 最適化
仮想/物理環境
ネット ワーク
ISP
携帯キャリア
CDN
サードパーティ/ クラウドサービス
ブラウザ
デバイス
ISP
エンド ユーザ
従業員
16
トランザクションパス分析では、各トランザクションが、どのサーバの、どのアプリケー
ションで実行されたのかを正確に記録し、問題箇所を瞬時に特定します
トランザクションパス分析とは
17
CICS
MQ
EAI
SOA
DBMS
Webサーバ C/C++ Java
クライアント
dynaTraceのコンセプト
18
ライフサイクル ・開発
・テスト
・運用
ビジネス ・ユーザ体感
・サービスレベル管理
・インパクト分析
分析 ・問題箇所の特定
・再現テスト不要 フルカバレッジ ・全トランザクション分析
・全ユーザ分析
エンドツーエンド ・全ての階層
・トランザクションの視点
19
dynaTraceの構成と特徴
Webサーバ アプリケーション サーバ
データベース サーバ
dynaTraceは、ユーザがアクセスしたトランザクションがどこで遅延したかを特定します
dynaTrace Analysis Server
dynaTrace Client
1つのライブラリ、1つの引数、1回のリスタート
簡単なインストール
ソースコードの変更なし
自動ディスカバリーによる迅速なインプリ
スケーラビリティ
効率的なデータ保持
運用時においても利用可能な安全性
データのエクスポートとレポート
Java/.NETエージェント
Webサーバエージェント
ブラウザ エージェント
Javaスクリプト エージェント
トランザクションパスのボトルネックを特定する
20
Webサーバでの処理
アプリケーションサーバでの処理
DBサーバでの処理
クライアント から実行
されたトランザクション
トランザクションパスのボトルネックを特定する
21
アプリケーションサーバでエラーが発生している
サーバ内での実行時間
DBサーバ
J2EEサーバ .NETサーバ
クライアント
トランザクションパスのボトルネックを特定する
22
サーバ・サーバ間の遅延分析
メソッドレベルの遅延分析
問題のあるソースコードをデコンパイルする
23
デコンパイルしたソースコードを参照
CPU時間や処
理時間からボトルネックを特定
より簡単に、より効果的に
負荷をかける方法は?
24
負荷テストの種類
Webサーバ アプリケーション データベース
負荷テストは、その形態によって3つに分類されます
負荷テスト1.5
負荷テスト1.0
負荷テスト2.0
25
負荷テスト1.0
Webサーバ アプリケーション データベース
負荷テスト1.0
短所:
• 製品として提供される(ソフトウェア、ハードウェアの導入が必要)
• 大規模な負荷テストの場合多数のサーバが必要
• “エンドユーザ”の体感を計測できない
• サードパーティの外部コンポーネント(クラウド、CDNなど)の計測ができない
• 地域によるレスポンスの違いを把握することが できない
ファイヤウォール内での負荷生成
長所:
• ファイヤウォール内のリソース管理に 優れている
• 内部システムでの負荷テストに適して いる
26
負荷テスト1.5
Webサーバ アプリケーション データベース
負荷テスト1.5
短所:
• “エンドユーザ”の体感を計測できない
• アプリケーションデリバリチェーン全体での問題把握ができない
• 地域によるレスポンスの違いを把握する ことができない
• 外部からアクセスできないシステムに 対応できない
クラウドからの負荷生成
長所:
• 大規模な負荷テストが可能
• SaaSとして提供(ソフトウェア、ハードウェアが不要)
27
負荷テスト2.0
Webサーバ アプリケーション データベース
短所:
• 外部からアクセスできないシステムに対応できない
クラウドからの負荷生成と
一般ユーザからの計測と分析
負荷テスト2.0
長所:
• SaaSとして提供(ソフトウェア、ハードウェアが不要)
• 大規模な負荷テストが可能
• エンドツーエンドで問題の検知が可能
• サードパーティの外部コンポーネント(クラウド、CDNなど)をすべて計測可能
• アプリケーションデリバリチェーン全体で問題の 検知と分析が可能
• 「セルフサービス」によって、任意の時間帯に 負荷テストを実施
28
Compuware GomezTM Web Load Testing
Webサーバ アプリケーション データベース
Compuware GomezTM Web Load Testingは、Compuwareが準備するクラウド環境から
お客様の対象システムに負荷をかけます。同時に、一般ユーザのPCにインストールした
計測用エージェントからレスポンスタイムを計測します。
クラウドから負荷を生成
一般ユーザのPCから
パフォーマンスを計測 29
最も効果的な パフォーマンステストとは?
30
負荷テストとdynaTraceの統合
Webサーバ アプリケーション データベース
パフォーマンスボトルネックの分析(dynaTrace)
負荷テスト実施
31
負荷テストツールとdynaTrace連携の仕組み
Webサーバ アプリケーション データベース
負荷テストツールが生成するトランザクションのヘッダにタグを付加することにより、dynaTrace
はすべてのトランザクションを個別に把握することが出来ます
dynaTrace Analysis Server
dynaTrace Client
WebサーバエージェントがHTTPヘッダのタグを認識し、APサーバに送るパ
ケットに同様のタグを付ける
dynaTraceのエージェントは同様の処理を繰り返す
32
負荷テストツールが生成するトランザクションのヘッダに「タグ」を付加して送信する
遅延した負荷テスト・トランザクションを分析する
33
トランザクションID
このトランザクションは
どの処理で遅延したのか?
負荷テストで発生したボトルネックを分析
34
どこでエラーに
なっているのか
負荷テストで発生したボトルネックを分析
35
テストログ参照 ログ内容の修正
再テスト テストログ参照 ログ内容の修正
再テスト テストログ参照
開発・運用
テスト テストログ参照 ログ内容の修正
再テスト テストログ参照 ログ内容の修正
再テスト テストログ参照 問題の分析
問題の解決
時間
問題の解決
開発・運用
テスト
時間
問題の分析
テストの繰り返し
•ダイレクトな問題分析
•テスト回数を削減
•確かな品質を確保し、
開発・運用者の作業
時間を削減
従来の手法
dyn
aTrace
による手法
従来のパフォーマンステストと dynaTraceを利用したパフォーマンステストの違い
36
37
まとめ
・ITシステムの複雑化に伴い、パフォーマンステストの重要性が増しています
・パフォーマンス分析は、「トランザクションパス」のレベルまで 分析できるツールが注目されています
・負荷テスト時にトランザクションパス分析ソリューションを併用することで、負荷テストの効果を最大化し、またテスト期間を大幅に短縮することが可能です
お知らせ
38
39
dynaTrace AJAXエディション
dynaTrace AJAXエディションダウンロードサイト:
http://ajax.dynatrace.com/ajax/en/
dynaTrace ブラウザエージェントのほとんどの機能を無料でご利用いただくことが可能
です。下記URLからダウンロードしてご利用ください。
40
dynaTrace体験セミナー開催!
Javaや.NETアプリケーションの設計・開発・テストに従事されている方を 対象としたdynaTraceの体験セミナーを開催します。 実機を用いて実際にdynaTraceに触れることができます。 この機会をぜひご利用ください。
◆日時 2012年2月29日(水)15:00-17:00(14:30開場) ◆会場 ネクストワークスラーニングセンター 東京都品川区上大崎2-27-1 サンフェリスタ目黒8F JR「目黒」駅より徒歩1分 ◆お申込み 以下のURLよりご登録ください http://offers.compuware.com/register?cid=70170000000gdsB ◆お問い合わせ 日本コンピュウェア㈱ マーケティング本部 セミナー担当 TEL:03-5473-4530 Email:[email protected]
Thank You