概要
Cognosでの高負荷時のパラメーターチューニングは、以前投稿した以下の記事にある「Report Serviceのプロセス数」と「親和性の低いスレッド数」が基本です。
Cognosのレポート同時実行時のパラメーターチューニングの考え方
https://qiita.com/shinyama/items/1cb80e0440c17d6edaf9
これらのパラメーターの掛け算以上のリクエストが来た場合、リクエストはキューに溜まりますが、その様子はCognos Administrationの「評価指標」の「キュー・Reportサービス」に表示される、「キュー長」にカウントされます。
高負荷テストの評価として、この「キュー長」を見る事が必要ですが、この評価指標の出力は定期的にログファイルに出力する事ができますので、負荷テスト中にファイル出力を仕掛けておいて、テスト後に評価をする事をやります。
今回は、この評価指標のファイル出力手順と、評価すべき項目を説明します。
ファイル出力手順
出力設定は、Cognosの再起動は不要で、オンラインで設定をON/OFFできます。
システム管理者でCognos Analytcsにログインし「管理」→「管理コンソール」を選択します。
「設定」タブから「ディスパッチャとサービス」を選択し、「プロパティーを設定 - 設定」アイコンを選択します。
この画面で表示されているディスパッチャのURIは、後の設定で使用しますので、控えておいて下さい。
以下のように設定し、「OK」を選択します。次の画面でも再度「OK」します。
パラメーター:DISP.MetricDumpEnabled
値:http://hostname:9300/p2pd ※先ほど確認したディスパッチャーのURI
※複数のディスパッチャがある場合、ディスパッチャコンピューターごとに設定します。
各Cognosディスパッチャーノードにログインして、以下のディレクトリに移動します。
/opt/ibm/cognos/analytics/configuration
metricdumpconfiguration.xml ファイルのコピーを取ります。
metricdumpconfiguration.xml ファイルを、以下の様に編集します。
※mbeanの箇所で、出力対象をreportServiceとしています。
※intervalは出力間隔です。
※resetAfterDump = trueで、interval毎にカウンターをリセットする様にしています。※理由は後述。
編集前
<!-- A list of the MBeans to dump. This set is the set of MBeans that are available remotely -->
<mbeans>
<mbean>com.cognos:type=Metrics,*</mbean>
<mbean>com.cognos:type=MetricHealth,*</mbean>
<mbean>com.cognos:type=ServiceHealth,*</mbean>
<mbean>com.cognos:type=ServiceOperationalStatus,*</mbean>
</mbeans>
<!-- interval of dumping in milliseconds -->
<interval>15000</interval>
<!-- whether to reset the MBeans after the values have been dumped -->
<resetAfterDump>false</resetAfterDump>
編集後
<!-- A list of the MBeans to dump. This set is the set of MBeans that are available remotely -->
<mbeans>
<mbean>com.cognos:type=Metrics,service=reportService</mbean>
</mbeans>
<!-- interval of dumping in milliseconds -->
<interval>60000</interval>
<!-- whether to reset the MBeans after the values have been dumped -->
<resetAfterDump>true</resetAfterDump>
評価指標の出力は、以下のファイルに出力されます。
/opt/ibm/cognos/analytics/logs/metricdump.xml
評価指標の出力を止めるのは、先ほどのCognos Administrationの詳細設定を消しておく手順ですので、お忘れなきよう。
結果の評価
metricdump.xmlファイルを開きます。
前述のinvervalで指定した間隔で、一連の評価指標が繰り返し出力されている事に注意してください。
以下の箇所を見つけます。Reportサービスの出力です。
<mbean name="com.cognos:type=Metrics,service=reportService">
このreportServiceの配下で、以下の箇所を見つけます。
<attribute name="QueueLengthHighWaterMark">
<value>
0
</value>
</attribute>
前述の評価指標の画面で言うところの、「高水準キュー長」です。
なぜ「キュー長」ではないかと言うと、「キュー長」はあくまでinterval毎の出力の瞬間にキューに溜まっている値なので、タイミング良く出力の瞬間にキューがはけてしまっていると、値が 0 になってしまうからです。
「高水準キュー長」であれば、これまでの最高値が見れます。
先ほどのmetricdumpconfiguration.xmlの中で、カウンターのリセットをtrueにしていたのは、リセットをする事でこの「QueueLengthHighWaterMark」の値は、interval間隔の間だけの最大の値を出力してくれるので、intervalの間にキューが発生している状況かどうかが評価できる、という事になります。
という感じで、負荷テスト中にこの値に 0 以上の値ががんがん入るようであれば、先ほどの別投稿で紹介したようなパラメーターチューニングの検討が必要になります。
以上です。
高負荷テストの際には、是非ご活用下さい。