この付録では、通常Cluster Verification Utility(CVU)およびOracle Universal Installerがインストール時に完了する構成作業を、手動で行う方法について説明します。この付録は、修正スクリプトを使用できないときに参考にしてください。
この付録の内容は次のとおりです。
この項の内容は次のとおりです。
注意: この項に示すカーネル・パラメータ値は、単なる最小値です。本番データベース・システムでは、これらの値をチューニングしてシステムのパフォーマンスを最適化することをお薦めします。カーネル・リソース管理の詳細は、オペレーティング・システムのドキュメントを参照してください。 |
インストール時にFixupスクリプトを生成して実行し、データベースを正常にインストールするために必要なカーネル・パラメータ値を確認および設定できます。このスクリプトは、必要なカーネル・パッケージを必要に応じて最小値に更新します。
修正スクリプトを使用できない場合は、次の表を参照して手動で値を設定します。次の表で、各カーネル・パラメータが表に示す最小値以上の値に設定されていることを確認します。
注意: Oracle Solaris 10の場合、System V IPCを実装するために/etc/system ファイルを変更する必要はありません。Oracle Solaris 10では、その実装にリソース制御機能が使用されます。 |
リソース制御 | 最小値 |
---|---|
project.max-sem-ids |
100 |
process.max-sem-nsems |
256 |
project.max-shm-memory |
この値はRAMサイズによって異なります。最小値については、「共有メモリー・リソースの要件」を参照してください。 |
project.max-shm-ids |
100 |
tcp_smallest_anon_port |
9000 |
tcp_largest_anon_port |
65500 |
udp_smallest_anon_port |
9000 |
udp_largest_anon_port |
65500 |
注意:
|
リソース制御のproject.max-shm-memory
を使用すると、プロジェクトの最大共有メモリーを設定できます。
次の表に、project.max-shm-memory
の最小インストール設定を示します。
prctl
コマンドを使用して、システム上のアクティブなプロセス、タスクまたはプロジェクトに関連付けられているリソース制御に対して、実行時の問合せや変更を行います。
プロジェクトおよびシステム全体のproject.max-shm-memory
セットの現在の値を表示するには、次のコマンドを入力します。
# prctl -n project.max-shm-memory -i project default
ここでdefault
は、id -p
コマンドを実行して取得されるプロジェクトIDです。
たとえば、システムを再起動せずにプロジェクト・デフォルトに対してproject.max-shm-memory
の設定を6GBに変更するには、次のコマンドを入力します。
prctl -n project.max-shm-memory -v 6gb -r -i project default
関連項目: 次のWebサイトのOracle Solaris 11の管理に関するドキュメントを参照してください。
|
リソース制御に対して指定されている現在の値を表示し、必要に応じて変更するには、次の手順を使用します。
リソース制御の現在の値を表示するには、次のコマンドを入力します。
$ id -p // to verify the project id uid=100(oracle) gid=100(dba) projid=1 (group.dba) $ prctl -n project.max-shm-memory -i project group.dba $ prctl -n project.max-sem-ids -i project group.dba
max-shm-memory
の値を6GBに変更するには、次のコマンドを入力します。
# prctl -n project.max-shm-memory -v 6gb -r -i project group.dba
max-sem-ids
の値を256に変更するには、次のコマンドを入力します。
# prctl -n project.max-sem-ids -v 256 -r -i project group.dba
注意: prctl コマンド(リソース制御)を使用してシステム・パラメータを変更する場合、これらのパラメータの変更を有効にするためにシステムを再起動する必要はありません。ただし、変更されたパラメータは、システムの再起動後は永続しません。 |
システムの再起動後に永続するよう、リソース制御プロジェクト設定を変更するには、次の手順を使用します。
デフォルトでは、Oracleインスタンスはdba
グループのoracle
ユーザーとして実行されます。group.dbaという名前のプロジェクトが、oracleユーザーのデフォルト・プロジェクトとして機能するように作成されます。コマンドid
を実行して、oracle
ユーザーのデフォルトのプロジェクトを検証します。
# su - oracle $ id -p uid=100(oracle) gid=100(dba) projid=100(group.dba) $ exit
最大共有メモリー・サイズを2GBに設定するには、projmod
コマンドを実行します。
# projmod -sK "project.max-shm-memory=(privileged,2G,deny)" group.dba
また、リソース制御値project.max-shm-memory=(privileged,2147483648,deny)
を、Oracleプロジェクトのプロジェクト・エントリの最後のフィールドに追加する方法もあります。
これらの手順が終了した後、次のコマンドを使用して/etc/project
ファイルの値を確認します。
# cat /etc/project
このコマンドの出力結果は、次のようになります。
system:0:::: user.root:1:::: noproject:2:::: default:3:::: group.staff:10:::: group.dba:100:Oracle default project ::: project.max-shm-memory=(privileged,2147483648,deny)
リソース制御がアクティブであることを確認するには、次の例のように、プロセス所有権をチェックし、コマンドid
およびprctl
を実行します。
# su - oracle $ id -p uid=100(oracle) gid=100(dba) projid=100(group.dba) $ prctl -n project.max-shm-memory -i process $$ process: 5754: -bash NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-shm-memory privileged 2.00GB - deny
注意: 最大共有メモリーの値は、SGAの要件に応じて異なり、SGAのサイズより大きい値に設定する必要があります。詳細は、『Oracle Solaris Tunable Parametersリファレンス・マニュアル』を参照してください。 |
シェル制限およびシステム構成パラメータは、この項の説明に従って設定することをお薦めします。
注意: この項に示すシェル制限値は、単なる最小値です。本番データベース・システムでは、これらの値をチューニングしてシステムのパフォーマンスを最適化することをお薦めします。シェル制限の構成の詳細は、オペレーティング・システムのマニュアルを参照してください。 |
ulimit
設定により、プロセス・メモリー関連のリソース制限が決定されます。次の表に示されているシェル制限が、示されている値に設定されていることを確認します。
シェル制限 | 説明 | ソフト制限(KB) | ハード制限(KB) |
---|---|---|---|
STACK |
プロセスのスタック・セグメントのサイズ | 10240以上 | 32768以下 |
NOFILES |
オープン・ファイル記述子 | 1024以上 | 65536以上 |
MAXUPRC またはMAXPROC |
最大ユーザー・プロセス | 2047以上 | 16384以上 |
これらのシェル制限に指定されている現在の値を表示するには、次のコマンドを入力します。
ulimit -s ulimit -n
修正スクリプトまたはCVUを使用してエフェメラル・ポートを設定しない場合は、NDDを使用して、カーネルTCP/IPエフェメラル・ポート範囲が、予想されるサーバーのワークロードに対して十分なエフェメラル・ポートを提供できることを確認します。下限を9000以上に設定し、Well KnownポートとOracleおよびその他のサーバー・ポートで一般的に使用される登録済ポート範囲のポートを避けます。使用するアプリケーションに予約済のポートを避けるようにポート範囲を高く設定します。範囲の下限が9000を超え、予想されるワークロードに対して範囲が十分大きい場合は、エフェメラル・ポート範囲に関するOUI警告は無視できます。
次のコマンドを使用して、エフェメラル・ポートの現在の範囲を確認します。
Oracle Solaris 10では、次のndd
コマンドを使用します。
# /usr/sbin/ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port 32768 65535
Oracle Solaris 11では、次のipadm
コマンドを使用します。
# ipadm show-prop -p smallest_anon_port,largest_anon_port tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp smallest_anon_port rw 32768 -- 32768 1024-65535 tcp largest_anon_port rw 65500 -- 65535 32768-65535
上の例で、エフェメラル・ポートの範囲はデフォルトの範囲(32768-65535)に設定されています。
予想されるワークロードまたはサーバー数に必要な場合は、UDPとTCPエフェメラル・ポート範囲を広めに更新します。次に例を示します。
Oracle Solaris 10の場合
# /usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000 # /usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500 # /usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000 # /usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500
Oracle Solaris 11の場合
# ipadm set-prop -p smallest_anon_port=9000 tcp # ipadm set-prop -p largest_anon_port=65500 tcp # ipadm set-prop -p smallest_anon_port=9000 udp # ipadm set-prop -p largest_anon_port=65500 udp
これらの設定は永続的にすることをお薦めします。システムの再起動時にこのエフェメラル・ポートの範囲変更を自動で行う方法については、システムの管理ドキュメントを参照してください。