スケーラビリティのテスト
こちらの項目では、Yellowfin上で実行するパフォーマンステストについて紹介します。このテストプロセスの結果は、Yellowfinが大規模なユーザーインストールをサポートするためにスケールできることを示しています。
テストケースは、ユーザーが様々なビジネスインテリジェンスレポートアクティビティを同時に実行する、実際のエンタープライズレポート環境を想定して設計されています。
スケーラビリティとは何か
スケーラビリティは、増加するユーザー要求に直面しても、パフォーマンスを発揮することのできるシステムの能力を指します。例えば、スケーラビリティの高いシステムは、ユーザー数が100から1,000、1,000から10,000、10,000からさらに増加したとしても予測可能な動作します。パフォーマンスとは、特定のタスクを完了するまでに要する時間を指します。
なぜ、スケーラビリティは重要なのか
レポートシステムを使用するユーザー数の増加や、生成されるクエリーやレポート数の増加に伴いパフォーマンスが課題になります。また、ユーザーは、BIレポートを使用してビジネスでの意思決定を向上できる方法を学ぶことで、より洗練されたレポートやクエリーを生成するようになり、これはシステムにより負荷を与えます。
そのため、システムのスケーラビリティは、既存のニーズと予測されるニーズを考慮するうえで重要になります。部門、地理的な地域にまたがる異なるユーザーコミュニティのユニークなレポート作成要件や、レポート作成に使用される様々なデータソースの範囲、レポートが提供すべき言語も重要な要素です。スケーラビリティは、BIソリューションを実行するハードウェア、およびソフトウェア環境を決定する際の重要な基準になります。
テストの手順と結果
システムのスケーラビリティを判断するためには、サーバ環境を構築する際に使用するベンチマーク、またはガイドラインとして慎重に定義され、制御されたテスト状況でのシステムパフォーマンスを現実的に評価することが必要になります。こちらの項目で紹介するテストは、Yellowfinの信頼できるベンチマークを開発するために設計されています。
目標
テストは、以下の目標を念頭に置いて設定されています。
- ダッシュボードナビゲーションやレポート閲覧、レポート実行やレポートのスケジュール設定(レポートのバッチ処理)など、一般的なタスクを実行するユーザー数の増加に伴う、Yellowfin環境のパフォーマンスやスケーラビリティ特性を判断する。
- テストユーザーには同時接続ユーザーを使用しなくてはいけません。これは、すべてのテストユーザーがサーバへ同時に負荷をかけていることを意味します。
アプローチ
テストに使用されるハードウェア、およびソフトウェアコンポーネントは、ログイン、ダッシュボードやレポートの実行、ログオフを含むユーザーアクティビティが発生するエンタープライズのレポート作成環境を想定して設計されています。
Yellowfinアプリケーションのテストに重要なアプローチは、アプリケーション自体のボトルネックを明らかにし、アプリケーションエンジン内でのクエリーの送信や受信、結果のレンダリングプロセスにおけるパフォーマンスを監視することです。
注意:実行されるテストは、Yellowfinのアプリケーションとは分離され、ネットワークレイテンシーや、データベースサーバ速度、ブラウザのレンダリングパフォーマンスなどの潜在的な環境の影響を含みません。
テストの他の目的のひとつは、合理的に短い思考時間や、2秒の待機時間を組み込むことで、実際の使用例を試行し、再現することでした。短い思考時間を使用する利点は、以下の通りです。
- テスト結果は、有効な同時接続テストのために模倣されたユーザー行動による高い使用パターンを反映する。
- 顧客は、彼らのレポート環境での同時接続レベルに基づく結果から、より優れた推測をすることができる。
同時接続ユーザーは、以下のテストケースを実行しています。
- Yellowfinへのログイン
- Yellowfinのダッシュボードへ移動
- (高度なグラフを含む)6つのユニークレポートの読み込み
- 異なるダッシュボードタブへ移動し、(ドリルダウン、ドリルスルー、ドリルエニウェア、書式設定、条件付き書式設定、レポートサマリー、高度なグラフを含む)6つのユニークレポートの読み込み
- (グラフと表を含む)レポートの最大化と終了
- Yellowfinからのログアウト
ソフトウェア
以下の表は、テストに使用されたソフトウェアの概要です。
ソフトウェア | |
テスト環境 | Yellowfin v7.3 |
OS | Microsoft Windows 7 Professional |
ウェブサーバ | Tomcat 8.5.6 |
データベースのOS | Microsoft Windows 7 Professional |
データベース | Microsoft SQL Server 12 |
読み込みテスト | JMeter 2.13 |
ハードウェア
YellowfinとJMeter両方の負荷テストソフトウェアは、以下のハードウェア上で実行されました。
ハードウェア | |
サーバ | 一般的なデスクトップサーバ |
プロセッサ | Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz (12コアCPUと同等の6コアハイパースレッディング) |
RAM | 24 GB |
ユーザー
テスト環境でのパフォーマンスに基づき、実際にサポート可能なユーザー数を正確に判断するためには、「名前付き」ユーザー、「同時接続」ユーザー、「アクティブ」ユーザーを区別しなくてはいけません。
名前付き:システムにより特定され、潜在的にシステムを使用する個人の総計を構成するユーザーです。彼らはユーザーの総数を構成し、いつでもアクティブ、または同時接続ユーザーになり得ます。実際のBI環境では、システムの使用を許可された個人の総計を指します。これは、テスト環境で報告された応答時間を本番環境でサポートするために、どの程度のユーザー数を想定すればよいのかを示すため、BI実装計画での重要な数字となります。
同時接続:特定の時間にシステムにログオンしたユーザーセッション数を構成するユーザーです。これには、クエリーから返される結果を閲覧しているだけのユーザーも含まれます。これらの同時接続ユーザーは、システムにログオンしていても、リクエストを送信していない場合もあります。Yellowfinの経験則を元にすると、特定の時間における同時接続ユーザーの数は、名前付きユーザーの20%t程度です。そのため、名前付きユーザーが1,000いる場合、同環境内での同時接続ユーザーは200になります。注意:この割合は、各BIアプリケーションに応じて大きく異なる可能性があります。
アクティブ:システムにログインしているだけではなく、リクエストの送信や応答を待つ同時接続ユーザーも構成するユーザーです。彼らは、特定の時間において実際にシステムに負荷をかけているユーザーです。目安として、同時接続ユーザーの50%がアクティブユーザーです。そのため、例えば、名前付きユーザーが1,000いる場合、同環境内での同時接続ユーザーは200であり、アクティブユーザーは100になります。この場合、名前付きユーザーとアクティブユーザーの割合は、10:1になります。注意:この割合は、各BIアプリケーションに応じて大きく異なる可能性があります。
テスト
Yellowfinの負荷テストケースは、SkiTeamのデータマートを使用して実施されています。テストは、Yellowfin v7.3の新規インストールを使用し、増加する同時接続ユーザー数に合わせて、Yellowfinのコネクションプール、アプリケーションサーバの最大スレッド、ソースデータベースの接続管理に適切な値を適用して実行しています。テストはまた、Tomcatの単一インスタンスで実行されています。以下に示すように、同時接続ユーザー数が一定の閾値に達すると応答時間が遅くなるようにクラスタリングオプションを実装しなくてはいけません。
結果
レポートインタラクション | |||||
アクティブユーザー数 | 100 | 200 | 300 | 400 | 500 |
平均閲覧応答時間(秒) | 0.6 | 0.9 | 1.4 | 2.1 | 5.2 |
名前付きユーザー数* | 1000 | 2000 | 3000 | 4000 | 5000 |
*アクティブユーザー数を元に、10:1の割合を使用して名前付きユーザー数を見積もっています。
テストまとめ
今回掲載したYellowfinのテスト結果は、グローバル組織へ真のエンタープライズレベルのレポート環境を提供するために構築された、モダンで、オープン、スケール可能なアーキテクチャの結果です。
テスト結果からは、以下の結論が導かれます。
- Yellowfinは、適切に導入された場合、数千人規模のユーザーにまたがるエキストラネットのレポート作成環境導入ニーズに対応できるスケーラビリティのレベルを実証しました。
- Yellowfinは、エンタープライズ導入で複数の部門にまたがる大規模なレポート作成環境の導入をサポートします。
- Yellowfinは、スケジュールが設定されたレポート作成(レポートのバッチ処理)環境で、高いスループットを発揮します。
実際の環境では、ネットワークやデータベースレイヤーなど他の要因が、潜在的にパフォーマンスを抑制する可能性があることに注意が必要です。同時接続率を高めるために、アプリケーションとデータベースサーバレイヤーにクラスタ構成を構築することが推奨され、これは高可用性とフェイルオーバー要件を満たすために最善のアプローチです。
結論として、Yellowfinベンチマークテストの結果は、適切に導入された場合、Yellowfinがエンタープライズレポート作成環境のための基礎となる、高パフォーマンスソリューションになり得ることを示しています。