FAQ
Q2.
System i上のODBCサーバージョブ(QZDASOINIT)のパフォーマンスチューニング方法について教えてください
ODBCパフォーマンスチューニング QZDASOINIT
サーバーサイドのチューニング : QZDASOINIT のジョブ数
- i5/OS(OS/400)側でODBCアクセスを処理するプログラム(サーバージョブ)名はQZDASOINITです。(サブシステムQUSRWRKまたはQSYSWRK下で実行されます。)
- QZDASOINITだけでなく、サーバージョブの開始時には様々な処理が発生するためシステム負荷が高くなり、結果パフォーマンスに影響を及ぼす事があります。
- QZDASOINITはシステムIPL時(サブシステム開始時)に指定されたジョブ数を事前に起動しておき、実際のユーザーからのアクセス時のパフォーマンスが低下しないようにしています。
- IPL時に起動されるQZDASOINITのジョブ数をピーク時のODBCクライアント数(=通常はユーザー数に近くなると思われます)と同数程度に設定することが推奨されます。これにより、ユーザーがODBCアクセスした際にQZDASOINITジョブが起動されることによって発生するパフォーマンス低下を防ぐ事ができます。
QZDASOINITジョブ
- i5/OS V5R4では、QUSRWRKサブシステム下で実行されます。
- QZDASOINITの数を無用に大きくすると、ディスクへの同期I/O処理が多くなり、結果かえってパフォーマンスを劣化させてしまいます。
- 多くの場合、最大のODBCアクセス数と同数以下に調整するのが適切です。
1. ODBCアクセス数の調査
- 実際に使用されているODBCアクセス数を調査します。
- これはQZDASOINITのジョブ数で測定します。
- DSPACTPJコマンドを使用して、ピーク時のQZDASOINITジョブの数を調査します。
- DSPACTPJ コマンドをプログラム名 QZDASOINITで実行します。
2. DSPACTPJコマンドでのQZDASOINITジョブのピーク数の調査
- 「事前開始ジョブ」の(1)現在数 がIPL時に自動開始されるジョブ数です。下図では8です。
- 「事前開始ジョブ」の(2)ピーク時の数がIPL以降でのQZDASOINIジョブの同時実行数の最大です。下図では9です。
- 「使用中の事前開始ジョブ数」の(3)現在数が今現在実行されているQZDASOINTのジョブ数です。下図では6です。
- 「使用中の事前開始ジョブ数」の(4)ピーク時の数が(5)経過時間内におけるQZDASOINITジョブの同時実行最大数です。下図では8です。
通常は(2)のピーク時のQZDASOINITジョブ数=ODBCアクセスの同時最大数と考えられますので、(2)の値と同数だけQZDASOINITのジョブをIPL時に開始しておくとパフォーマンス上効率的と考える事ができます。
*注 (1)の値が一時的・例外的な最大数となっていることもありえます。そのような場合には、平均数や(4)の値など参考にして適切な数に設定した方がいい場合もあります。QZDASOINITジョブ数を必要以上に多くするとディスクへの同期I/O処理が増え、かえってパフォーマンス劣化の要因になりかねませんのでご注意ください。
3. 現在のQZDASOINITジョブの設定確認
- DSPSBSD SBSD(QUSRWRK)コマンドを実行し、10. 事前開始ジョブ項目を選択します。
- お使いのOS/400バージョンによっては、QZDASOINITジョブがQSYSWRKサブシステム下で実行されている場合もありますので、その場合はDSPSBSD SBSD(QSYSWRK)と実行します。
- QZDASOINIT の欄に5 (明細の表示)を入力します。(下、上図)
- 下、下の図の(1)初期ジョブ数 を確認します。下図では1です。
- この(1)初期ジョブ数を前ページで調査したQZDASOINTの最大数に変更することによって、IPL後(サブシステム開始後)に必要なQZDASOINITジョブ数が起動されることになり、ユーザーからのODBC接続の都度ジョブが起動されることによるパフォーマンスの劣化を防ぐ事ができます。
4. QZDASOINITジョブの起動数の変更
- CHGPJEコマンドを使用してQZDASOINTジョブの初期ジョブ数を変更します。
- CHGPJE SBSD(QUSRWRK) PGM(QZDASOINIT) INLJOBS(xx)
- xxにはIPL時に起動させたいQZDASOINITのジョブ数を指定します。下図では9を指定しています。
- 上記はi5/OS V5R4の場合です。お使いのバージョンによってはSBSD(QSYSWRK)でQZDASOINITを実行している場合もありますので、現在の設定を確認してから実行してください。
5. QZDASOINITジョブが変更されたかを確認
- 2.の手順を再度実行してQZDASOINITの初期ジョブ数が変更されたかを確認します。
- 下の例では初期ジョブ数が9に変更されています。
- 設定の変更は次回IPL時(正確にはサブシステム再起動時)に反映されます。
