カーネル・パラメータの値の表示および変更

リソース制御に対して指定されている現在の値を表示し、必要に応じて変更するには、この手順に従います。

リソース制御の値の表示

  1. リソース制御の現在の値を表示するには:

    $ 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
  2. 現在の値を変更するには、prctlコマンドを使用します。例:

    • 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コマンド(リソース制御)を使用してシステム・パラメータを変更する場合、これらのパラメータの変更を有効にするためにシステムを再起動する必要はありません。ただし、変更されたパラメータは、システムの再起動後は永続しません。

リソース制御の値の変更

次の手順を使用して、リソース制御のプロジェクト設定を変更すると、システムの再起動後も変更が有効になります。

  1. デフォルトでは、Oracleインスタンスはdbaグループのoracleユーザーとして実行されます。group.dbaという名前のプロジェクトが、oracleユーザーのデフォルトのプロジェクトとして機能するように作成されます。idコマンドを実行し、oracleユーザーのデフォルト・プロジェクトを検証します。

    # su - oracle
    $ id -p
    uid=100(oracle) gid=100(dba) projid=100(group.dba)
    $ exit
  2. 最大共有メモリー・サイズを2GBに設定するには、projmodコマンドを実行します。

    # projmod -sK "project.max-shm-memory=(privileged,2G,deny)" group.dba

    また、リソース制御値project.max-shm-memory=(privileged,2147483648,deny)を、Oracleプロジェクトのプロジェクト・エントリの最後のフィールドに追加する方法もあります。

  3. /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)
  4. リソース制御がアクティブであることを確認するには、次の例のように、プロセス所有権をチェックし、コマンド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サイズより大きい値を設定する必要があります。