project ファイルはプロジェクト情報のローカルソースです。このプロジェクトファイルは、NIS マップの project.byname と project.bynumber、および LDAP データベースプロジェクトを含むその他のプロジェクトソースと組み合わせて使用できます。プログラムは getprojent(3PROJECT) ルーチンを使用してこの情報にアクセスします。
/etc/project は、database と appserver という 2 つのプロジェクトを定義します。user のデフォルトは user.database および user.appserver です。admin のデフォルトは user.database と user.appserver の間で切り替えることができます。
hostname# cat /etc/project
. . . user.database:2001:Database backend:admin:: user.appserver:2002:Application Server frontend:admin:: . .
/etc/project ファイルには、アプリケーションのリソース制御が表示されます。
hostname# cat /etc/project
. . . development:2003:Developers:::task.ax-lwps=(privileged,10,deny); process.max-addressspace=(privileged,209715200,deny) . .
/etc/project ファイルには、アプリケーションのリソースプールが表示されます。
hostname# cat /etc/project
. . . batch:2001:Batch project:::project.pool=batch_pool process:2002:Process control:::project.pool=process_pool . . .
2 つのプロジェクト database と appserver の FSS を設定します。database プロジェクトには CPU 配分を 20 割り当てます。appserver プロジェクトには CPU 配分を 10 割り当てます。
hostname# cat /etc/project
. . . user.database:2001:database backend:admin::project.cpu-shares=(privileged, 20,deny) user.appserver:2002:Application Server frontend:admin::project.cpu-shares= (privileged,10,deny) . . .
FSS は有効になっていて、各ユーザーおよびアプリケーションが一意のプロジェクトに割り当てられていない場合、そのユーザーおよびアプリケーションはすべて同じプロジェクトで実行されます。同じプロジェクトで実行されると、すべてが同じ配分をめぐって時分割方式で競合します。これは、配分がユーザーやプロセスではなくプロジェクトに割り当てられているために起こります。FSS のスケジューリング機能を活用するには、各ユーザーおよびアプリケーションを一意のプロジェクトに割り当てます。
プロジェクトを構成するには、Oracle Solaris 11.3 でのリソースの管理 の ローカルの /etc/project ファイルの形式を参照してください。
次の例では、特性の異なる 5 つのアプリケーションを構成します。
|
/etc/project ファイルを編集します。app_server、app_db、development、tp_engine、および geo_db プロジェクトエントリのリソースプールにユーザーをマッピングします。
hostname# 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 delopment::staff:project.pool=dev.pool, process.max-addressspace=(privileged,536870912,deny) user.tp_engine:Transaction Engine:::project.pool=tp_pool user.geo_db:EDI DB:::project.pool=db_pool; project.cpu-shares=(privileged,3,deny)
pool.host スクリプトを作成してリソースプールのエントリを追加します。
hostname# cat pool.host
create system host create pset dev_pset (uint pset.max = 2) create pset tp_pset (uint pset.min = 2; uint pset.max = 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 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 pool_default (pset pset_default) 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)
pool.host スクリプトを実行して、pool.host ファイルで指定されているとおりに構成を修正します。
hostname# poolcfg -f pool.host
pool.host リソースプールの構成ファイルを読み取り、システム上のリソースプールを初期化します。
hostname# pooladm -c