|
|
 |
 |
 |
 |
 |
 |
 |
オークションサイト、インターネット証券、SaaSなどがシステムダウンすると、
得られるはずの膨大な収益を逃してしまうことになります。多くの人はダウンした期間だけの収益に目が奪われがちですが、
真に企業を苦しめるのはその後の動向であることに、お気づきください。
システムダウンの際に他のサイトへ移ってしまった顧客を呼び戻すには、大変な労力と時間がかかります。
ブランドが傷つくことで新規の利用客もなかなか増加しません。
元の状態に戻すには、大々的なキャンペーンを行う等のコストだけでなく、
時間という目には見えないが非常に大きなコストと、そして体力も必要となるのです。
企業内のミッションクリティカルな基幹システムのダウンも、生産性に著しく低下させます。
社員のモラルには大きな悪影響がある上、企業の競争力の低下につながります。
|
 |
 |
 |
一方で、システムダウンを恐れて過剰な設備投資を行うのも問題があります。
利用者からレスポンスの苦情が来る度に、ハードウェアリソースを増加していては、
TCOが途方もなく膨れあがります。
リソースの「過剰」もコスト負担に直結するのです。
負荷テストの実施によって、
求められる最適なパフォーマンスのシステムを提供することで、
結局は妥当なコストを維持することが可能です。
|
 |
|
 |
 |
 |
 |
オープンソースの世界では、いくつかの負荷テストツールを無料で入手できます。しかし、これらは、小規模なWebアプリケーションテスト向けには使えるかもしれませんが、
ミッションクリティカルなアプリケーションの負荷テストを実施するには、必須となる多くの機能が不足しています。
特にスクリプティング機能とレポート機能が欠けています。さらに、Web/HTTP以外のテクノロジーへの対応が不十分であり、社内システムと一体化している大型のシステムでは計測に限界があります。
フリーツールでミッションクリティカルなシステムの負荷テストを実施するのは危険であることをご認識ください。
|
 |
自社開発される多くのテストツールは、
ほとんどがその場しのぎであり、スクリプトは非常に限られた機能をテストするために作成されるケースがほとんどです。
加えて開発者に依存し、他の人が利用することも拡張することもできません。
開発者がプロジェクト途中で退職した場合は、ツールに対する認識のずれが発生する危険性もあります。再利用が難しいため、後のリリースまたはまったく別の新しい製品でテストを行う必要が生じ、労力の無駄となります。
作成にも相応の時間もかかり、かえって高コストなツールとなってしまうのです。
|
 |
最近では開発環境にテストツールが付属していることが珍しくありません。
慣れた操作性と環境でテストできる反面、
すべての視点が開発者中心となっていることが大きな欠点です。
単体テスト、負荷テスト、運用テストのすべての作業を開発者が行うことが前提であり、これでは品質保証担当者の認識やビジネスニーズが無視されます。
また、機能も初歩的なものがほとんどです。閉じられた数人の開発者で開発を完了させるのであればいいのですが、大規模なミッションクリティカルなシステムには不適当といえるでしょう。
|
 |
 |
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
 |
負荷テストの重要性を認識した開発者や品質保証担当者が、会社に購入稟議を出しても「高い」の一言で却下されてきました。
これを救うため、ボーランドが注目したのが、開発全体におけるテスト期間の割合です。
1年ほどの開発プロジェクトでも、負荷テストが必要になるのは1〜2ヵ月程度です。
このため、SilkPerformer はその負荷テスト期間だけ使える、月単位の期間限定ライセンスを用意しました。
例えば、100ユーザー1ヵ月で、月額ライセンス約90万円とリーズナブルな価格で利用が可能。
これなら「高い」と、はねられる危険性は低くなります。小中規模プロジェクトでの負荷テストにも導入できることでしょう。
この購入で実績を見せて、負荷テストの有用性を実証することができます。
|
 |
 |
 |
 |
 |
 |
|
 |
 |
 |
従来の負荷テストソリューションは、テストする仮想ユーザーをプロトコルごとに揃えなければならず、
導入コストが大きなハードルとなっていました。
そこで、SilkPerformer は3種類の仮想ユーザーライセンスパックとして標準化しています。例えば、
・「Web仮想ユーザーパック」は、5万4600円/ユーザー
・「スタンダード仮想ユーザーパック」は6万8250円/ユーザー
・「プレミアム仮想ユーザーパック」は8万1900円/ユーザー。
プロトコルあたりの導入コストが安くなると同時に、ライセンス管理もシンプルになります。
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
ボトルネックの特定を解説する前に、SilkPerformerが負荷テストを実施するトータルなソリューションであることをご理解ください。
テスト計画から、テストの実行、テスト結果の分析とボトルネック抽出、そして報告と改善策の提示。
さらに、アプリケーションのチューニング後、負荷テストを再度実施し、パフォーマンス改善結果をレポーティングします。
各種テスト資産(テストスクリプト、プロフィール、テストデータ、カスタム計測など)の一元管理にも対応。
SilkPerformerは、負荷テストに必要な機能をワンストップで提供するトータルソリューションなのです。
|
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
 |
 |
|
 |
 |
 |
SilkPerformerの大きなアドバンテージとなるのが、以上に示したサイクルにより、ボトルネックの根本原因を特定できることです。
ボトルネックの存在はわかっても、原因がわからなければ解決は困難です。いたずらにリソースを注ぎ込み、
コストが膨らむ一方となります。そこで、SilkPerformerは性能問題の根本原因をソースコードレベルで解決するために、
エージェント(dynaTrace)を対象となるシステムに配置して、
.NETやJava(J2EE)アプリケーションのコンポーネントレベル(クラスやメソッドなど)まで性能を分析します。
これにより、詳細な診断とシステムのボトルネックをピンポイントで特定できるようになりました。
|
 |
|
 |
 |
 |
それでは、具体的な診断とその代表的な表示画面をご覧いただきましょう。
SilkPerformerはクライアントの応答時間だけではなく、
クライアントからのリクエストを処理するサーバ側での処理時間を
詳細に分析し画面表示できます。右図の画面がその一例です。
ここでは、サーバのCPUの処理時間をアプリケーションAPI単位に
表示したものです。サーバ内のCPU処理を
JDBC、EJB、Servletなどの単位に詳細に表示(画面中央の一覧)。
さらに、その合計時間(左下のグラフ)や平均時間(右下のグラフ)も
ビジュアルにグラフ化できます。
これにより、どの処理がサーバの大きな負荷となっているか、特定できます。
|
 |
|
 |
 |
 |
呼び出されたメソッド、SQLクエリー単位まで、時系列に追跡可能。
アプリケーションのどこにボトルネックがあるかをピンポイントで特定できます。
それが、右の画面例です。
画面例だけでは理解が難しいかもしれませんので、概念図を以下に示します。
ここでは、68秒かかっている振り込み処理トランザクションの内訳を
説明しています。まず、Javaコンポーネントの性能の問題で10秒、
SOAオブジェクトの呼び出しで19秒、DBクエリー発行で24秒、
DBの同期処理で15秒ということが、画面を確認することで時系列にわかります。
これがボーランドが提供するPurePathテクノロジーです。
|
 |
 |
 |
 |
 |
 |
 |
|
 |
|
 |
 |
 |
負荷テストは一時的な高負荷のほかに、
一定の負荷を長時間かけた場合のパフォーマンス劣化も必要となります。
それが、右の画面です。一定のトランザクションを1時間続けることで、
メモリリークの発生とGC(ガーベッジコレクション)のタイミングが
画面表示されます。
|
|
 |
 |
 |
 |
 |
 |
|
|
|