Question
リソースのチューニング方法について教えてください。
Release:ALL
Answer
以下のようなポイントをチューニングすることで、最適なパフォーマンスでCA-Roscoeを稼動させることが可能となります。
1:MPL (Multi Programming Level)
複数プログラミング・レベル(多重処理)に必要な10Kのユーザ領域数を指定
・CA-Roscoe初期化パラメータ『MPL=』で数値を指定
・ユーザ・トランザクション処理に必要な領域
・MPLが確保できない場合、ユーザは待ち状態となる
・必要以上のMPL値指定は、過度なCA-Roscoeユーザ領域の無駄使い
・一般的な目安算出方法
MPL=3+(TERMSO/5)
・MPLの使?状態確認は、以下のRPF(CHKMPL)を使用
<<CHKMPL>>
:*---------------------------------------------------------------*
:* Display MPL values for user information *
:*---------------------------------------------------------------*
CREATE AWS TEMP RPF
LET L3 = PEEK('ROT+374%+4' '4')
LET L4 = DEC(PEEK('ROT+3A4' '2'))
LET L6 = DEC(SUBSTR(L3 1 4))
LET L5 = DEC(SUBSTR(L3 5 4))
WRITE AWS T
'** MPL= ' | L4 | ' Maximum= ' | L5 | ' Current= ' | L6
ENDWRITE
ATTACH
PAUSE
DISCARD AWS *
RETURN
2:LIBXLIB (Library Work Area)
使用可能なライブラリ・バッファ域の総数、および同時に使用可能なプリンタの総数を指定
・CA-Roscoe初期化パラメータ『LIBXLIB=』で数値を指定
・ライブラリ・アクセスに必要な領域
・UPDATEコマンドなどは複数のバッファ領域を必要とする
・必要以上のLIBXLIB値指定は、CA-Roscoeユーザ領域の無駄使いとなる
・一般的な目安算出方法
LIBXLIB=(2*MPL)+(2*RPS)
RPSは CA-Roscoe実行中同時に稼動すると考えられるプリンター数
・LIBXLIBの使用状態確認は、以下のRPF(CHKXLIB)を使用
<<CHKXLIB>>
:*---------------------------------------------------------------*
:* Display LIBXLIB values for user information. *
:*---------------------------------------------------------------*
CREATE AWS TEMP RPF
LET L2 = PEEK('LBCT+38%+A' '6')
LET L4 = DEC(SUBSTR(L2 1 4))
LET L6 = DEC(SUBSTR(L2 5 4))
LET L5 = DEC(SUBSTR(L2 10 4))
WRITE AWS T
'** LIBXLIB= ' | L4 | ' Maximum= ' | L5 | ' Current= ' | L6
ENDWRITE
ATTACH
PAUSE
DISCARD AWS *
RETURN
3:AWS/ROSLIBのデータ・ブロックサイズ - 入出力で処理されるデータ量
・ブロックサイズが大きすぎる場合はDASDブロックを無駄に使用する
・ブロックサイズが小さい場合は、入出力時間と制御ブロックのメモリー使用に影響する
・AWSのブロックサイズを表示するにはAWSコマンドを実行し、ブロックサイズは8の倍数であることを確認する
・ROSLIBのブロックサイズを表示するにはPGM=ROSTATを実行し、ブロックサイズは8の倍数であること、DEAD BLOCKが大量には存在しないことを確認する
4:AWS/ROSLIBのキャッシュ
・メモリー上にデータ・バッファ・エリアを確保することでデータ読み込みの入出力処理を軽減する
・すべてのAWSアクセスで使用する
・マスター・インデックスブロックとRPFデータ・ブロックで使用する
・十分な領域がアロケートされない場合には未使用
・AWS-MコマンドでAWSキャッシュ機能のモニターが可能
・LIBCACHE STSTSコマンドでライブラリ・キャッシュ機能のモニターが可能
5:AWS/ROSLIBのデータセット配置
・SYSAWSPとROSLIB00を異なるボリュームにアロケートする
・SYS1やCICSのデータセットなどリザーブされる可能性があるデータセットから分離する
・CA-RoscoeのアカウントRTMレポートでレスポンスが悪かった時間に大量入出力の存在有無を確認可能
・CA-SYSVIEW/Eや他システム・パフォーマンス・モニター製品で、レスポンスが悪い時点で、アプリケーション・リザーブ存在有無を確認可能
6:DSFデータセット機能
・カタログやVTOCの精査には『SHORT』、『LONG』ではなく『QUICK』を使用する
・CA-Roscoe初期化パラメータ『DSNLPRD2=』でNOを設定し、CA-LibrarianのMCDでプロテクトされているメンバの表示を許可する
・『A DSN MY.DATA+』ではなく『A DSN MY.DATA.+』など、ワイルドカード使用でより限定する
7:ディスパッチ優先順位
・CA-Roscoeの処理は、資源を集中的に使用するものではなく、その大部分が入出力処理です。そのレスポンスは、資源の使用競合によっては遅くなる可能性がある
・CA-RoscoeはCICSやそれに類似する端末システムと同様、もしくはそれ以上のディスパッチ優先順位を持つパフォーマンス・グループに配置する。また、資源を集中使用する他タスクより高いディスパッチ優先順位を確保できるようにする
8:その他
・コマンドの使用制限
* コマンドの使用制限が必要な場合、CMDEXITではなくセキュリティ機能で制限する
* CMDEXITは、全コマンドについてコマンドを解釈される前にメインタスクレベルで呼び出す
* セキュリティ機能では、コマンドの有効性が確認された後にサブタスクレベルで呼び出す
・DISBUF記憶域
* DISPLAYコマンドで使用される動的バッファ(DISBUF=)はSQA(サブプール239)を使用する
* DISBUF=はROSGBLで設定する
* CA-RoscoeのSHUTDOWN時に出力されるROS137IとROS138Iによって、DISBUFで使用状況をモニター可能
・ETSOで使用される記憶域
* 記憶域を大量に必要とするETSOアプリケーションプログラムの記憶域を使用を最小限とするために、EPL内の同時実行可能数を制限する
* それぞれのETSOアプリケーションプログラムの使用記憶域を制限するために、EPL内に記憶域制限値を設定する
* 実行ロードモジュールが複数ロードされるのを防止し、16M以上の記憶域を使用可能とするために、ロードモジュール属性はRENT/AMODE31とする
* 記憶域を大量に必要とするアプリケーションプログラム実行はETSOよりBTSO環境で実行する
・RDMで使用される記憶域
* RDMはRPFプログラムを実行するためのワークエリアで、このエリアのサイズはRDMBLOCKで指定され(2K+RDMBLOCK)から(16K+RDMBLOCK)のエリアを取得する
* RDMはDMSコマンドでモニター可能
・DSF LINE TABLE
* PGM=ROSTATは、ROSLIBの全ブロック数、空ブロック数、レコード総数、デッドブロック数をレポートする
* PGM=LIBUTILのRECLAIMオプションは、ROSLIBのデッドブロックを解消する。ADDLIBオプションでCA-Roscoeの稼動中でもROSLIBxxの追加が可能。PGM=LIBUTILは、ROSLIBのバックアップ/リストア時にも使用可能
Old Japanese Knowledge Document ID : JTEC001580