Sun Java System Application Server 9.1 高可用性 (HA) 管理ガイド

ProcedureSolaris で共有メモリーとセマフォーを設定する

セマフォーは、グローバルなオペレーティングシステムリソースであるため、設定は、HADB だけでなく、ホストで稼働しているすべてのプロセスに依存します。Solaris では、/etc/system ファイルを編集してセマフォーを設定します。

  1. ルートとしてログインします。

  2. 共有メモリーを設定します。

    • shminfo_shmmax を設定します。この値は、ホスト上の単一共有メモリーセグメントの最大サイズを指定します。16 進数表現で、この値を HADB ホストマシンの RAM の合計サイズ (ただし 2G バイト以下) に設定します。

      たとえば、RAM が 2G バイトの場合は、/etc/system ファイルで次のように値を設定します。


      set shmsys:shminfo_shmmax=0x80000000

      注 –

      ホストマシンのメモリーを確認するには、次のコマンドを使用します。


      prtconf | grep Memory

    • Solaris 8 以前では、shminfo_shmseg (プロセスあたり接続可能な共有メモリーセグメントの最大数) を設定します。ホストあたりのノード数の 6 倍に値を設定します。ホストあたりに 6 ノード以下の場合は、次の行を /etc/system ファイルに追加します。


      set shmsys:shminfo_shmseg=36

      Solaris 9 以降では、shmsys:shminfo_shmseg は廃止されています。

    • shminfo_shmmni (システム全体の共有メモリーセグメントの最大数) を設定します。各 HADB ノードは 6 つの共有メモリーセグメントを 割り当てるため、HADB に必要な値は、ホストあたりのノード数の 6 倍以上にしてください。Solaris 9 では、ホストあたりに 6 ノード以下の場合は、デフォルト値を変更する必要はありません。

  3. セマフォーを設定します。

    /etc/system ファイルを確認して、たとえば次のようなセマフォー設定のエントリがないかどうか調べます。


    set semsys:seminfo_semmni=10
    set semsys:seminfo_semmns=60
    set semsys:seminfo_semmnu=30

    エントリが存在する場合は、次に示すように値を増やします。

    これらのエントリが /etc/system ファイルに含まれていない場合は、ファイルの最後に次のエントリを追加します。

    • seminfo_semmni (セマフォー識別子の最大数) を設定します。各 HADB ノードにはセマフォー識別子が 1 つ必要です。Solaris 9 では、ホストあたりに 6 ノード以下の場合は、デフォルト値を変更する必要はありません。次に例を示します。


      set semsys:seminfo_semmni=10
    • seminfo_semmns (システム全体のセマフォーの最大数) を設定します。各 HADB ノードにはセマフォーが 8 つ必要です。Solaris 9 の場合、またはホストあたりに 6 ノード以下の場合は、デフォルト値を変更する必要はありません。次に例を示します。


      set semsys:seminfo_semmns=60
    • seminfo_semmnu (システム中の undo 構造体の最大数) を設定します。各接続 (設定変数 NumberOfSessions、デフォルト値は 100) には undo 構造体が 1 つ必要です。ホストあたりに 6 ノード以下の場合は、600 に設定します。


      set semsys:seminfo_semmnu=600
  4. マシンをリブートします。