今までのIBM i (従来のOS/400,i5/OS)の実行管理
IBM i では、その発表当初から複数のもしくは様々な属性(対話、バッチ、印刷など)をもったジョブを実行するための機能を標準装備しています。代表的な機能を以下に示します。
1:サブシステム
サブシステムとは、ジョブが処理されるシステム上の場所のことです。システム上に複数のサブシステムを定義することで、複数の属性(対話型、バッチなど)をもったジョブをそれぞれの属性にあった環境で実行することができます。また、複数の属性による分割だけでなく、部門や地域あるいは国などの単位での分割を行うことも可能です。サブシステムについての詳細は、インフォメーション・センターのサブシステムの章を参照してください。
2:メモリー・プール
IBM i においては、メモリー資源は「プール」というエリアに論理的に分割されて管理がなされています。IBM i 上で処理されるジョブは全ていずれかのメモリー・プールに展開され、実行されることとなります。メモリー・プールにはいくつかの種類があります。
メモリー・プールの種類
- マシン・プール
- ベース・プール(基本プール)
- 対話型プール
- スプール用プール
- ユーザー定義プール
マシン・プールは、OS機能で使用されます。つまりユーザーの介入を必要としない、システムが実行するジョブ(OSタスク)がこのメモリー・プール上に展開され実行されます。ユーザー・ジョブは実行されません。そのため、このプールに割り振られているメモリー資源が不足する場合には、システム全体のパフォーマンスの低下を招くことに繋がるので注意が必要です。このプールに割り当てられるメモリー資源の量はシステム値QMCHPOOLにて設定することが可能です。
ベース・プールには、システム上の割り当てられていない全てのメモリー資源(つまり、他のメモリー・プールが必要としていない、もしくは他のメモリー・プールに割り振られていない全てのメモリー資源)が割り振られています。このベース・プールは多くのサブシステムで共用となり、バッチ処理や様々なシステム機能で使用されます。メモリー・プールについての詳細は、インフォメーション・センターのメモリー・プールの章を参照してください。
3:実行優先順位
IBM i 内で処理されるジョブには、実行時に優先順位が付けられます。他のジョブの実行時にシステム資源についての競合が発生した際に、この実行優先順位が使用され、優先順位がより高いジョブの実行が優先されることとなります。IBM i では1(最高の優先順位)から99(最低の優先順位)の範囲の値となります。ただし、この実行優先順位は相対的な重要度を表し、システム内での絶対的な重要度を示すものではありません。例えば、実行優先順位が25であるジョブは50のジョブと比較し2倍の重要度を示すということではありません。デフォルトでは、対話型ジョブは実行優先順位20、バッチ・ジョブは実行優先順位50となっています。実行優先順位についての詳細は、インフォメーション・センターのクラスの章を参照してください。
メモリーに関しては、メモリー・プールの機能を利用して、サブシステム毎に専用もしくは共有のメモリー・エリアを割り振ることができるのですが、プロセッサー・コアについては、システムもしくはパーティション(区画)に割り振られたものをすべてのジョブで共有利用することになります。イメージとしては、以下の図のようになります。
今までのプロセッサー・コアの観点でのワークロード管理

プロセッサー・コアの観点からみると図のように8コア搭載したシステムもしくはパーティション(区画)では、すべてのプロセッサー・コアを使用することができます。つまり、アプリケーション1も2も3も8プロセッサー・コアを使用することができる訳です。
ワークロード・キャッピング
ワークロード・キャッピングは、各アプリケーションで利用できるプロセッサー・コア数を制限することにより、ワークロード管理を行う新しいワークロード管理の概念です。ワークロード・キャッピングの概念を簡単に示すと以下の図のようになります。
ワークロード・キャッピングを使用したワークロード管理

ワークロード・キャッピングを利用することで、図のようにアプリケーション1は、3プロセッサー・コア、アプリケーション2は6プロセッサー・コアというようにアプリケーション毎に利用可能なプロセッサー・コア数を制御することができます。このようにアプリケーション毎に利用できるプロセッサー・コアの数を制御することで、必要な処理能力をアプリケーション毎に割り当てることができ、今まで以上により柔軟なワークロード管理を実現することができます。また、この機能を活用することにより、ソフトウェア・ベンダーは、より柔軟なライセンス管理体系を提供することができるようになります。今まではシステム全体のプロセッサー・コア数に基づいた体系であったものを単一パーティション(区画)内でのライセンス体系といった新しいライセンス体系を提供することも可能となります。
ワークロード・キャッピングは、以下の特徴を持っています。
- 単一のIBM i パーティション(区画)で機能
- サブシステム、ジョブに対して設定可能
- IBM i 内の複数サブシステムを跨ったワークロード制御が可能
- プロセッサー・コア数単位での制御
1は、ワークロード・キャッピング機能は、単一のパーティション(区画)で機能することを示しています。複数パーティション間でのワークロードの制御に使用することはできません。2、3は、サブシステム単位でのワークロード制御が可能であることを示しています。4は、ワークロード・キャッピング機能を使用する場合の処理能力の単位は、プロセッサー・コア数つまり整数値であることを意味しています。
ワークロード・キャッピングには2つの機能があります。1つは、プロセッサー・コアを制御する機能、もう1つはライセンス管理に関する機能になります。プロセッサー・コアを制限する方法については、ワークロード・キャッピングの利用例の利用例1,2、ライセンス管理に関する方法は、利用例2でそれぞれ説明したいと思います。
ワークロード・キャッピングの前提条件(IBM i 7.1)
ワークロード・キャッピング機能を利用するための前提条件は以下のとおりです。
PTF SI39795
このPTFの他に関連するPTFが複数ありますので、詳細についてはカバーレターを参照してください。
SI39795 - OSP-Workload Capping function
この機能はIBM 6.1でも利用可能となる予定です。しかし2010/11現在は、以下のAPARで公開されていますが、PTF自体は現時点では利用可能になっておりません。
SE45296 - OSP-Workload Capping function
これらのPTFを適用することにより以下のコマンドが提供されます。
- ADDWLCGRP:ワークロード・キャッピング・グループの追加
- ADDWLCPRDE:ワークロード・キャッピング・プロダクトの追加
- CHGWLCGRP :ワークロード・キャッピング・グループの変更
- RMVWLCGRP:ワークロード・キャッピング・グループの除去
- RMVWLCPRDE:ワークロード・キャッピング・プロダクトの除去
- DSPWLCGRP:ワークロード・キャッピング・グループの表示
- CHGJOBコマンドの変更(ワークロード・キャッピング・グループパラメーターの追加)
ワークロード・キャッピングの利用例
利用例1:サブシステムに対して適用する場合
利用例1では、サブシステムに対してワークロード・キャッピングを設定する例の説明をします。利用例1と同じように2プロセッサー・コアのIBM i 7.1パーティション上でワークロード・キャッピング・グループにより、1プロセッサー・コアに制限されたサブシステムと通常のサブシステムでの動作の違いを見ていきましょう。
【ワークロード・キャッピング・グループの作成】
ADDWLCGRP WLCGRP(NAKAWLCGRP) PRCLMT(1)
【データ・エリアを作成し、サブシステムを登録】
CRTDTAARA DTAARA(QSYS/QWTWLCGRP) TYPE(*CHAR) LEN(2000) VALUE('NAKABATCH□□NAKAWLCGRP') TEXT('Subsystems to use workload capping') AUT(*USE)
【サブシステムの起動】
STRSBS SBSD(NAKALIB/NAKABATCH)
サブシステム起動時にCPI146Cが記録されます。
Subsystem NAKABATCH is using workload capping group NAKAWLCGRP
サブシステムNAKABATCH起動時のジョブログ

ワークロード・キャッピング・グループを設定したサブシステムNAKABATCHと設定していないサブシステムQBATCHで同じプログラムを実行してみます。
サブシステムQBATCHで実行した例
サブシステムNAKABATCHで実行した例
上記2つのWRKACTJOB画面のCPU%の部分に注目してください。サブシステムQBATCHで実行した場合には、CPU%は、100.0%を示しています。つまり、2プロセッサー・コア分の処理能力を使用して実行されていることになります。サブシステムNAKABATCHで実行した場合は、CPU%が50.1%を示しています。つまり1プロセッサー・コア分の処理能力で稼動していることを示しています。
利用例2:ライセンス・プログラム製品に適用する場合
利用例2では、IBM製のライセンス・プログラム製品にワークロード・キャッピング機能を適用する際の構成方法について述べていきたいと思います。ここでは、2プロセッサー・コアのPower Systems™ 上で稼動するIBM i 7.1上でWebSphere® Application Server V7.0(以下WAS7.0)をワークロード・キャッピング機能を利用して1プロセッサー・コアで稼動するように設定する例となります。
【ワークロード・キャッピング・グループの作成】
まずは、ADDWLCGRPコマンドを使用してワークロード・キャッピング・グループを作成します。ワークロード・キャッピング・グループは、グループに所属するサブシステム、ジョブの利用可能なプロセッサー・コア数を制御します。
ADDWLCGRP WLCGRP(WLCGRP01) PRCLMT(1)
この例では、WLCGRP01というグループに所属するサブシステム、ジョブでは、プロセッサー・コアを1つ分の処理能力しか与えられないことを示しています。
【ワークロード・キャッピング・プロダクトの追加】
ワークロード・キャッピング・プロダクトの追加コマンドを使用して、WAS7.0をライセンス管理上、最大1プロセッサー・コアで稼動するように定義します。このコマンドは、ワークロード・キャッピング機能によるプロセッサー・コア数の制限とIBM i ライセンス管理機能の整合性を維持するために実行します。
ADDWLCPRDE WLCGRP(WLCGRP01) PRDID(5733W70) LICTRM(*ALLINS) FEATURE(*ALLINS)
この例では、先ほど作成したワークロード・キャッピング・グループWLCGRP01にWAS7.0(5733-W70)のすべてのオプション、すべてのフィーチャーを登録することを示しています。
【DSPWLCGRPコマンドで設定内容の確認】
DSPWLCGRPコマンドで設定内容の確認を行うことができます。このコマンドを実行すると以下の画面が表示され、WAS7.0に対してワークロード・キャッピング・グループWLCGRP01が設定されていることを確認することができます。
DSPWLCGRPコマンドの出力例

【データ・エリアの作成とサブシステムの登録】
ワークロード・キャッピング・グループとサブシステムを関連付けるためにデータ・エリアを作成し、サブシステムとワークロード・キャッピング・グループを登録します。
CRTDTAARA DTAARA(QSYS/QWTWLCGRP) TYPE(*CHAR) LEN(200) VALUE(‘QWAS7□□□□□WLCGRP01□□') TEXT('任意のテキスト’)
□:ブランク
データ・エリアを作成するに当たりいくつか注意点があります。
- データ・エリア名は「QWTWLCGRP」とする。
- 必ずQSYSライブラリーに作成する。
- 長さは、最低20バイトで作成する。
- VALUEには、ライブラリー名、ワークロード・キャッピング・グループ名の順で指定し、各名前が10バイトに満たない場合は、ブランクで埋める。
QSHよりWAS7.0を開始し、QWAS7サブシステムとインスタンスが起動したことを確認
WAS 7.0インスタンスの開始

サブシステムQWAS7活動状態の確認

WRKLICINFコマンドでピーク使用状況を確認 -WRKLICINF Option 5 表示-
WRKLICINFコマンドによるWAS 7.0のライセンス情報の表示

ピーク時使用状況パラメーターが“1”になっており、WAS7.0の使用ライセンスが、IBM i のライセンス管理上も“1”プロセッサー・コア分になっていることが確認できます。
ワークロード・キャッピング使用上の考慮点
ワークロード・キャッピングを使用する際には、以下のような考慮点があります。(2010/11現在)
- ワークロード・キャッピングの設定は、CLコマンドからのみ実行することができます。GUIインターフェースは提供されていません。
- サブシステム稼動中にデータ・エリアQWTWLCGRPを作成することはできますが、サブシステムの再起動をするまで有効になりません。
- RMVWLCGRPコマンドは、該当サブシステム活動中に実行することができます。また、サブシステムに対して即時に反映されます。つまり、実行中のジョブに対して、キャッピングが無効になります。
- システム・ジョブやサブシステム・ジョブに対してはワークロード・キャッピング・グループを設定することはできません。
- システム値QCTLSBSDで指定された制御サブシステムに対して、ワークロード・キャッピング・グループを設定することはできません。
- 最大255のワークロード・キャッピング・グループを定義可能です。
- ワークロード・キャッピング・グループの使用するプロセッサー数の変更は、即時に反映されます。
- ジョブに対する設定に関しては、CHGJOBコマンドによる設定のみ可能です。したがって、個々のジョブに対して実行前にワークロード・キャッピング・グループを設定することはできません。
参考資料
Information Center:Managing workload capping
2010/11時点では英語のサイトのみの情報になりますので、アクセスする場合は、ブラウザーの言語を英語に変更するか、URLの最後に“ ?lang=en”を追加してください。
IBM、IBMロゴ、ibm.com、i5/OS、OS/400、Power Systems、WebSphereは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについては、www.ibm.com/legal/copytrade.shtml(US)をご覧ください。
Microsoft,および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。