Oracle® Solaris ゾーンの紹介

印刷ビューの終了

更新: 2014 年 12 月
 
 

ゾーン規模のリソース制御の設定

大域管理者または適切な承認を持つユーザーは、ゾーン規模の特権付きリソース制御をゾーンに対して設定できます。ゾーン規模のリソース制御は、ゾーン内のすべてのプロセスエンティティーによる総リソース消費を制限します。

これらの制限は、大域ゾーンと非大域ゾーンのどちらに対しても、zonecfg コマンドを使用して指定します。Oracle Solaris ゾーンの作成と使用 のゾーンの構成方法を参照してください。

ゾーン規模のリソース制御を設定するためのより簡単な推奨される方法は、cpu-cap などの rctl リソースではなく、capped-cpu などのプロパティー名またはリソースを使用することです。

zone.cpu-cap リソース制御は、1 つのゾーンで消費可能な CPU リソースの量に対する絶対的な制限を設定します。設定と同様、100 の値は 1 つの CPU の 100% を意味します。125 の値は 125% になります。CPU キャップの使用時は、100% がシステム上の 1 つの CPU の上限となります。


注 - capped-cpu リソースを設定する場合は、単位に小数を使用できます。この値は zone.cpu-cap リソース制御と相互に関連していますが、設定値はその 100 分の 1 になります。設定値 1 はリソース制御の設定値 100 に等しくなります。

zone.cpu-shares リソース制御は、公平配分スケジューラ (FSS) の CPU 配分の制限をゾーンに対して設定します。CPU 配分は、まずゾーンに対して割り当てられたあとで、project.cpu-shares エントリの指定に従って、ゾーン内のプロジェクトに分配されます。詳細は、Oracle Solaris ゾーンの作成と使用 のゾーンがインストールされている Oracle Solaris システムでの公平配分スケジューラの使用を参照してください。この制御のグローバルプロパティー名は cpu-shares です。

zone.max-locked-memory リソース制御は、1 つのゾーンで使用できる、ロックされた物理メモリーの量に制限を設定します。ゾーン内のプロジェクト間でのロックされたメモリーリソースの割り当ては、project.max-locked-memory リソース制御を使用して制御できます。詳細は、Oracle Solaris 11.2 でのリソースの管理 の使用可能なリソース制御を参照してください。

zone.max-lofi リソース制御は、1 つのゾーンで作成可能な lofi デバイスの数を制限します。

1 つのゾーンの LWP が多くなりすぎると、ほかのゾーンに影響を与えることがあります。zone.max-lwps リソース制御は、これを防ぐことで、リソースの隔離を向上させます。ゾーン内のプロジェクト間での LWP リソースの割り当ては、project.max-lwps リソース制御を使用して制御できます。詳細は、Oracle Solaris 11.2 でのリソースの管理 の使用可能なリソース制御を参照してください。この制御のグローバルプロパティー名は max-lwps です。

zone.max-processes リソース制御は、1 つのゾーン内のあまりに多くの LWP が他のゾーンに影響を与えることを防ぐことによって、リソースの隔離性を高めます。ゾーン内の各プロジェクトに対するプロセステーブルスロットリソースの割り当ては、project.max-processes リソース制御 (Oracle Solaris 11.2 でのリソースの管理 の使用可能なリソース制御に記載) を使用して設定できます。この制御のグローバルプロパティー名は max-processes です。zone.max-processes リソース制御は、zone.max-lwps リソース制御を含むこともできます。zone.max-processes が設定されていて zone.max-lwps が設定されていない場合、zone.max-lwps はゾーンのブート時に暗黙的に zone.max-processes の値の 10 倍に設定されます。正常なプロセスとゾンビプロセスの両方がプロセステーブルスロットを占有するため、max-processes 制御がプロセステーブルを消費しつくすゾンビプロセスから保護します。ゾンビプロセスには本来 LWP がないため、max-lwps でこの可能性から保護することはできません。

zone.max-msg-idszone.max-sem-idszone.max-shm-ids、および zone.max-shm-memory の各リソース制御は、ゾーン内のすべてのプロセスで使用される System V リソースを制限するために使用されます。ゾーン内のプロジェクト間での System V リソースの割り当ては、これらのリソース制御の project バージョンを使用して制御できます。これらの制御のグローバルプロパティー名は、max-msg-idsmax-sem-idsmax-shm-ids、および max-shm-memory です。

zone.max-swap リソース制御は、ゾーン内のユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費されるスワップを制限します。prstat –Z の出力は「スワップ」列を表示します。報告されるスワップは、ゾーンのプロセスと tmpfs マウントで消費されるスワップの合計量です。この値により、各ゾーンで予約されているスワップをモニタリングしやすくなり、適切な zone.max-swap 設定を選択できます。

表 2-2  ゾーン規模のリソース制御
制御名
グローバルプロパティー名
説明
デフォルトの単位
使用される値
zone.cpu-cap
このゾーンに対する CPU リソース量の絶対的な制限。
数量 (CPU の数)、パーセントで表されます。

注 - capped-cpu リソースとして設定する場合は、単位に小数を使用できます。

zone.cpu-shares
cpu-shares
このゾーンに対する公平配分スケジューラ (FSS) の CPU 配分
数量 (配分)
zone.max-locked-memory
ゾーンで使用できるロックされた物理メモリーの合計量。
priv_proc_lock_memory がゾーンに割り当てられている場合、そのゾーンがすべてのメモリーをロックするのを防ぐため、このリソース制御の設定も検討してください。
サイズ (バイト)
capped-memorylocked プロパティー
zone.max-lofi
max-lofi
1 つのゾーンで作成可能な lofi デバイスの数に対する制限
数量 (lofi デバイスの数)
zone.max-lwps
max-lwps
このゾーンで同時に使用できる LWP の最大数
数量 (LWP 数)
zone.max-msg-ids
max-msg-ids
このゾーンに許容されるメッセージキュー ID の最大数
数量 (メッセージキュー ID の数)
zone.max-processes
max-processes
このゾーンで同時に使用できるプロセステーブルスロットの最大数
数量 (プロセステーブルスロット数)
zone.max-sem-ids
max-sem-ids
このゾーンに許容されるセマフォー ID の最大数
数量 (セマフォー ID の数)
zone.max-shm-ids
max-shm-ids
このゾーンに許容される共有メモリー ID の最大数
数量 (共有メモリー ID の数)
zone.max-shm-memory
max-shm-memory
このゾーンに許容される System V 共有メモリーの合計量
サイズ (バイト)
zone.max-swap
このゾーンのユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費できるスワップの合計量。
サイズ (バイト)
capped-memoryswap プロパティー

prctl コマンドを使用すると、実行中のプロセスに対してこれらの制限を指定できます。この例はOracle Solaris ゾーンの作成と使用 のprctl コマンドを使用して大域ゾーンの FSS 配分を設定する方法に記載されています。prctl コマンドで指定された制限には持続性がありません。システムがリブートされると、制限は無効になります。