概要
Cognos Analyticsは各コンポーネントを分散環境にて構成する設計となっております。
そのため、多くのユーザーが利用するケースでは、アプリケーション層を複数台のサーバーで構成することで、容易にスケールアウトすることができます。
そのためCognos Analyticsでは大規模なBI環境を構築することができますが、多くのユーザーが利用するシステムの運用ではピーク時の流量制限などの考慮が必要になってきます。
流量制限は通常フロントのロードバランサーやWebサーバーなどで実装しますが、この記事ではCognos Analyticsのパラメータ設定で流量制限を実現する例を紹介します。
流量制限の必要性
多くのユーザーが利用するシステムでは、必要なトランザクションに応じたシステムのサイジングが必要ですが、ピーク性のあるシステムではサーバーへの負荷を軽減するためにリクエスト数や同時接続数を制限する仕組みが必要です。
特にCognosのようなBIシステムでは、特定のユーザーがサーバー負荷の高いレポートを頻繁に実行することで全体の負荷が増え、レスポンスの低下を招くことがあります。
Cognosには同時接続数をサーバースペックに応じて柔軟に設定できるパラメータが存在し、その設定によって流量制限を実現することができます。
Cognosのパラメータ設定
Cognosにおけるサーバー・パフォーマンスの調整パラメータとして、Reportサービスに対する「最大プロセス数」と「最大接続数」があります。
複数台で構成したレポート・サーバーでは各サーバーごとに複数のReportサービス・プロセスが実行され、さらに各プロセスには「親和性の高い接続」と「親和性の低い接続」があり、同時処理できる要求数を制限できます。
以下の例では、Reportサービスが2プロセスで親和性の低い接続が4の場合、1台のレポート・サーバーで同時に8の要求を処理できます
レポート・サーバーが4台の分散構成になっている場合は、さらに4倍の32の要求を同時に処理することができ、システム全体として最大同時接続数を32に制限することができます。
ピーク時など32を超える同時接続要求は、Reportサービスのキューに蓄積されることとなりますが、ここで課題があります。
キューに要求が蓄積されると、ユーザーからはレスポンスの遅延になり、キュー自体もシステムリソースを消費しますので、システム負荷にもなります。
これを回避するために、最大同時接続を超える要求に対しては、キューの滞留時間を極力小さくしてユーザーに対して早めにレスポンスを返すようにします。その際、ユーザーには「DPR-ERR-2002プロセスへの接続がないため、リクエストを実行できません」が返却されます。
Cognos Administration > ディスパッチャとサービス > 設定
| 名前 | 設定する値 | デフォルト値 |
|---|---|---|
| Report サービスのキューの時間制限 (秒) | 10 | 240 |
上記は、最大接続数を超える要求を10秒で返却する設定です。
まとめ
Cognos Analyticsは分散環境での構成を想定した設計となっております。これによって多くのユーザーが利用するBIシステムを構築することができます。
システム運用において流量制限を実装する際の参考にしていただければと思います。
