この章では、資源管理のフレームワークについて考察し、仮想的なサーバー統合プロジェクトについて説明します。この例では、5 つのアプリケーションを 1 つのシステムに統合します。対象となるアプリケーションは、それぞれ資源要件、ユーザー数、およびアーキテクチャが異なります。
現在、各アプリケーションは、それぞれの要件を満たす専用サーバーに置かれています。次の表にアプリケーションとその特性を示します。
|
アプリケーション |
特性 |
|---|---|
|
アプリケーションサーバー |
2 CPU を超えるとスケーラビリティが低い |
|
アプリケーションサーバー用のデータベースインスタンス |
負荷の高いトランザクション処理 |
|
テストおよび開発環境用のアプリケーションサーバー |
GUI ベースでのコードテスト |
|
トランザクション処理サーバー |
応答時間の保証 |
|
スタンドアロンのデータベースインスタンス |
大量のトランザクション処理と、複数のタイムゾーンに対するサービスの提供 |
次の構成を使用して、アプリケーションを 1 つのシステムに統合します。
アプリケーションサーバーは、2 つの CPU から構成されるプロセッサセットを持つ
アプリケーションサーバーのデータベースインスタンスとスタンドアロンのデータベースインスタンスは、4 つ以上の CPU から構成される 1 つのプロセッサセットに統合される。スタンドアロンのデータベースインスタンスはその資源の 75% が保証される
テストおよび開発用のアプリケーションサーバーには IA スケジューリングクラスを適用して、UI の応答性を保証する。メモリーを制約して、不正なコードによる影響を低減する
トランザクション処理サーバーには 2 つ以上の CPU から構成される専用のプロセッサセットを割り当てて、応答時間を短縮する
project データベースファイルを編集します。エントリを追加して必要な資源制御を実装し、ユーザーを資源プールにマップしたら、ファイルを表示します。
# cat /etc/project . . . user.app_server:2001:Production Application Server:::project.pool=appserver_pool user.app_db:2002:App Server DB:::project.pool=db_pool;project.cpu-shares=(privileged,1,deny) development:2003:Test and development::staff:project.pool=dev_pool; process.max-address-space=(privileged,536870912,deny) user.tp_engine:2004:Transaction Engine:::project.pool=tp_pool user.geo_db:2005:EDI DB:::project.pool=db_pool;project.cpu-shares=(privileged,3,deny) . . . |
開発チームはタスクを開発プロジェクトで実行する必要があります。これは、このプロジェクトへのアクセスをユーザーのグループ ID (GID) で制限しているためです。
pool.host という名前で入力ファイルを作成し、必要な資源プールの構成に使用します。次に、ファイルを表示します。
# cat pool.host create system host create pset default_pset (uint pset.min = 1) create pset dev_pset (uint pset.max = 2) create pset tp_pset (uint pset.min = 2) create pset db_pset (uint pset.min = 4; uint pset.max = 6) create pset app_pset (uint pset.min = 1; uint pset.max = 2) create pool default_pool (string pool.scheduler="TS"; boolean pool.default = true) create pool dev_pool (string pool.scheduler="IA") create pool appserver_pool (string pool.scheduler="TS") create pool db_pool (string pool.scheduler="FSS") create pool tp_pool (string pool.scheduler="TS") associate pool default_pool (pset default_pset) associate pool dev_pool (pset dev_pset) associate pool appserver_pool (pset app_pset) associate pool db_pool (pset db_pset) associate pool tp_pool (pset tp_pset) |
次のコマンドを入力します。
# poolcfg -f pool.host |
構成をアクティブにします。
# pooladm -c |
システム上でフレームワークが有効になっています。
フレームワークの構成を表示するには、次のコマンドを入力します。
# pooladm
system host
int system.version 1
boolean system.bind-default true
string system.comment
pool default_pool
boolean pool.default true
boolean pool.active true
int pool.importance 1
string pool.comment
string pool.scheduler TS
pset default_pset
pool dev_pool
boolean pool.default false
boolean pool.active true
int pool.importance 1
string pool.comment
string pool.scheduler IA
pset dev_pset
pool appserver_pool
boolean pool.default false
boolean pool.active true
int pool.importance 1
string pool.comment
string pool.scheduler TS
pset app_pset
pool db_pool
boolean pool.default false
boolean pool.active true
int pool.importance 1
string pool.comment
string pool.scheduler FSS
pset db_pset
pool tp_pool
boolean pool.default false
boolean pool.active true
int pool.importance 1
string pool.comment
string pool.scheduler TS
pset tp_pset
pset default_pset
int pset.sys_id -1
string pset.units population
boolean pset.default true
uint pset.max 4294967295
uint pset.min 1
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
pset dev_pset
int pset.sys_id 1
string pset.units population
boolean pset.default false
uint pset.max 2
uint pset.min 0
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
pset tp_pset
int pset.sys_id 2
string pset.units population
boolean pset.default false
uint pset.max 4294967295
uint pset.min 2
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
pset db_pset
int pset.sys_id 3
string pset.units population
boolean pset.default false
uint pset.max 6
uint pset.min 4
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
pset app_pset
int pset.sys_id 4
string pset.units population
boolean pset.default false
uint pset.max 2
uint pset.min 1
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
|
フレームワークのグラフィック表示が続きます。

上記の図の db_pool では、スタンドアロンのデータベースインスタンスに CPU 資源の 75% が保証されています。