【16-E-4】 テスト革命!パフォーマンステストの画期的アプローチ

Preview:

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:marketingjapan@compuware.com

Thank You

Recommended