前へ     目次     索引     DocHome     次へ     
iPlanet Application Server パフォーマンスおよびチューニングガイド



第 7 章   データベースサーバのチューニング


この章では、Oracle サーバをチューニングしてパフォーマンスを最大にする方法について説明します。Solaris をチューニングして Oracle とともに動作させる方法についても説明します。



Oracle サーバのチューニング



Oracle のチューニング自体が広範なトピックですが、後に説明するパラメータを正しく設定すれば十分です。チューニング可能な各設定についての詳細は、Oracle のマニュアルを参照してください。このマニュアルは特に Solaris プラットフォームで Oracle の初期パラメータを設定するためのものです。すべて Oracle 8.1.6 以降でテスト済みです。

はじめに、/etc/system ファイルで特定のシステム共有のメモリプールパラメータを設定します。Oracle アーキテクチャは、複数プロセスのデータを共有する共有メモリセグメントと、ロックを扱うセマフォを幅広く活用します。多くの場合、デフォルトのカーネル値では足りません。/etc/system ファイルを変更して、マシンを再起動する必要があります。通常はこれで十分ですが、システムやリソースによっては調整が必要になることもあります。

dbassist コマンドを使って、データベースを作成しチューニングすることができます。ただし、データベースインスタンスがすでに作成されている場合は、パラメータを手動でチューニングする必要があります。

Oracle サーバは、専用モードと共有サーバモードの 2 つのモードで実行することができます。共有サーバつまりマルチスレッドモードでは、多数のクライアントユーザプロセスでわずかなサーバプロセスを共有できるようになります。

Oracle の初期パラメータやチューニング可能パラメータはすべて次のファイルに格納されています。

$ORACLE_HOME/dbs/init<SID>.ora

このファイルは実際には $ORACLE_HOME/admin/<SID>/pfile/init<SID>.ora にリンクされています。

多くの場合、インストーラによってデータベースインスタンスのために作成された値は十分ではありません。



警告

必ずこのファイルのバックアップを取ってから、エントリを編集てください。




Solaris カーネルパラメータのチューニング

次に、Solaris カーネルパラメータを Oracle 用にチューニングする方法について説明します。

  • Solaris カーネルには Oracle に合うように設定したパラメータがあります。Oracle アーキテクチャは、複数プロセスのデータを共有する共有メモリセグメントと、ロックを扱うセマフォを幅広く活用します。Solaris を始めとする多くのオペレーティングシステムには、Oracle データベースを維持できるだけの共有メモリやセマフォがデフォルトで備わっているわけではありません。ただし、/etc/system ファイルを編集してサーバを再起動させるだけで Solaris のカーネルパラメータを変更することができます。


    表 7-1    Oracle 用の Solaris カーネルパラメータ

    カーネルパラメータ

    初期設定

    目的

    SHMMAX  

    4294967295  

    共有メモリ 1 セグメントの最大サイズ  

    SHMMIN  

    1  

    共有メモリ 1 セグメントの最小サイズ  

    SHMMNI  

    100  

    システム全体の共有メモリセグメントの最大数  

    SHMSEG  

    10  

    1 つのプロセスが扱える共有メモリセグメントの最大数  

    SEMMNS  

    2000  

    システム全体のセマフォの最大数  

    SEMMSL  

    1000  

    セット当たりのセマフォの最大数  

    SEMMNI  

    100  

    システム全体のセマフォの最大セット数  

    SEMOPM  

    100  

    semop 呼び出し当たりの最大オペレーション数  

    SEMVMX  

    32767  

    セマフォの最大値  

最初の 4 つのカーネルパラメータで共有メモリセグメントを設定します。ここで推奨されている設定は、ほとんどの Oracle データベース実装に適しています。SHMMAX 設定は大きすぎるように見えますが、SHMMAX 設定を実際に必要とする値より大きくしてもペナルティはありません。

最後の 5 つのカーネルパラメータでセマフォを設定します。各 Oracle インスタンスには、プロセスごとに 1 つのセマフォとそれ以外に 10 個のセマフォが必要です。さらに、最大のインスタンスにはプロセスごとに 2 番目のセマフォが必要です。サーバにデータベースを 1 つだけ設定する場合は、最終的には各プロセスに 2 個のセマフォとそれ以外に 10 個のセマフォが必要になります。

最初の 2 つのセマフォカーネルパラメータ SEMMNSSEMMSL に推奨する設定は、ほとんどの Oracle 実装に適しています。多数の同時データベースコネクションを持つシステムでは、この値を大きくする必要があります。最後の 3 つのセマファカーネルパラメータに関してここで推奨されている設定は、ほとんどの Oracle データベース実装に適しています。

一般に、使用する Solaris カーネルにここで推奨するよりも大きいパラメータが設定されている場合は、その設定を変更しないようにしてください。/etc/system のカーネルパラメータ設定を変更した場合は、サーバを再起動して新しい設定を有効にします。

/etc/system ファイルの最後に次の行を追加します。

set shmsys:shminfo_shmmax=4294967295

set shmsys:shminfo_shmmin=1

set shmsys:shminfo_shmmni=100

set shmsys:shminfo_shmseg=10

set semsys:seminfo_semmns=2000

set semsys:seminfo_semmsl=1000

set semsys:seminfo_semmni=100

set semsys:seminfo_semopm=100

set semsys:seminfo_semvmx=32767


前へ     目次     索引     DocHome     次へ     
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.

最新更新日 2002 年 3 月 6 日