Go to main content
リソース管理および Oracle® Solaris ゾーン開発者ガイド

印刷ビューの終了

更新: 2016 年 11 月
 
 

/etc/project プロジェクトファイル

project ファイルはプロジェクト情報のローカルソースです。このプロジェクトファイルは、NIS マップの project.bynameproject.bynumber、および LDAP データベースプロジェクトを含むその他のプロジェクトソースと組み合わせて使用できます。プログラムは getprojent(3PROJECT) ルーチンを使用してこの情報にアクセスします。

2 つのプロジェクトを定義する

/etc/project は、databaseappserver という 2 つのプロジェクトを定義します。user のデフォルトは user.database および user.appserver です。admin のデフォルトは user.databaseuser.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
.
.
.

プロジェクトの FSS project.cpu-shares を構成する

2 つのプロジェクト databaseappserver の 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)
.
.
.

注 - /etc/project ファイル内の「20,deny」および「(privileged,」の前にある行内の行ブレークは無効です。行ブレークは、印刷されるページまたは表示されるページ上に例を表示するためだけにここに示されています。/etc/project ファイル内の各エントリは 1 行で記述する必要があります。

FSS は有効になっていて、各ユーザーおよびアプリケーションが一意のプロジェクトに割り当てられていない場合、そのユーザーおよびアプリケーションはすべて同じプロジェクトで実行されます。同じプロジェクトで実行されると、すべてが同じ配分をめぐって時分割方式で競合します。これは、配分がユーザーやプロセスではなくプロジェクトに割り当てられているために起こります。FSS のスケジューリング機能を活用するには、各ユーザーおよびアプリケーションを一意のプロジェクトに割り当てます。

プロジェクトを構成するには、Oracle Solaris 11.3 でのリソースの管理 の ローカルの /etc/project ファイルの形式を参照してください。

特性の異なる 5 つのアプリケーションを構成する

次の例では、特性の異なる 5 つのアプリケーションを構成します。

表 8  ターゲットアプリケーションと特性
アプリケーションのタイプと名前
特性
アプリケーションサーバー、app_server
2 CPU を超えるとスケーラビリティーが低くなります。2 CPU プロセッサセットを app_server に割り当てます。TS スケジューリングクラスを使用します。
データベースインスタンス、app_db
極度にマルチスレッド化されます。FSS スケジューリングクラスを使用します。
テストおよび開発、development
モチーフベースです。テストされていないコードの実行をホストします。対話型スケジューリングクラスによってユーザーインタフェースの応答性が保証されます。メモリー制限をかけてアンチソーシャル処理の効果を最小限に抑えるために process.max-address-space を使用します。
トランザクション処理エンジン、tp_engine
応答時間が最優先されます。応答待機時間を最小限に維持するために、少なくとも 2 つの CPU から成る専用セットを割り当てます。時分割スケジューリングクラスを使用します。
スタンドアロンのデータベースインスタンス、geo_db
極度にマルチスレッド化されます。複数のタイムゾーンに対応します。FSS スケジューリングクラスを使用します。

注 - データベースアプリケーション (app.db および geo_db) を少なくとも 4 つの CPU から成る単一のプロセッサセットに統合します。FSS スケジューリングクラスを使用します。アプリケーション app_dbproject.cpu-shares の 25% を取得します。アプリケーション geo_dbproject.cpu-shares の 75% を取得します。

/etc/project ファイルを編集します。app_serverapp_dbdevelopmenttp_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)

注 - 「project.pool」、「project.cpu-shares=」、「process.max-addressspace」、および「project.cpu-shares=」で始まる行の行ブレークは、プロジェクトファイル内では無効です。行ブレークは、印刷されるページまたは表示されるページ上に例を表示するためだけにここに示されています。各エントリは 1 行で記述する必要があります。

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