ヘッダーをスキップ

Oracle Database 管理者リファレンス
10g リリース2(10.2) for UNIX Systems

B19278-06
目次
目次
索引
索引

戻る 次へ

8 Oracle Databaseのチューニング

この章では、Oracle Databaseのチューニング方法について説明します。次の項目について説明します。

8.1 チューニングの重要性

Oracle Databaseは、高度に最適化できるソフトウェア製品です。チューニングを頻繁に行うことで、システム・パフォーマンスが最適化され、データのボトルネックの発生を防ぐことができます。

データベースのチューニングを始める前に、「オペレーティング・システムのツール」で説明するツールを使用して、通常の動作を監視する必要があります。

8.2 オペレーティング・システムのツール

データベースのパフォーマンスを評価し、データベース要件を決定できるオペレーティング・システム・ツールがいくつかあります。これらのツールは、Oracleプロセスの統計に加えて、システム全体のCPU使用率、割込み、スワッピング、ページング、コンテキストのスイッチング、I/Oについての統計情報も提供します。

この項では、次に示す共通のツールについて説明します。

8.2.1 vmstat


注意:

Mac OS Xでは、vm_statコマンドを使用すると、仮想メモリー情報が表示されます。このコマンドの使用方法は、vm_statのmanページを参照してください。 


プロセス、仮想メモリー、ディスク、トラップおよびCPUアクティビティを表示するときは、vmstatコマンドを使用します。表示内容はコマンドで切り替えます。CPUアクティビティのサマリーを5秒間隔で6回表示する場合は、次のいずれかのコマンドを実行します。

次に、HP-UXでこのコマンドを実行した場合のサンプル出力を示します。

procs     memory            page            disk          faults      cpu
 r b w   swap  free  si  so pi po fr de sr f0 s0 s1 s3   in   sy   cs us sy id
 0 0 0   1892  5864   0   0  0  0  0  0  0  0  0  0  0   90   74   24  0  0 99
 0 0 0  85356  8372   0   0  0  0  0  0  0  0  0  0  0   46   25   21  0  0 100
 0 0 0  85356  8372   0   0  0  0  0  0  0  0  0  0  0   47   20   18  0  0 100
 0 0 0  85356  8372   0   0  0  0  0  0  0  0  0  0  2   53   22   20  0  0 100
 0 0 0  85356  8372   0   0  0  0  0  0  0  0  0  0  0   87   23   21  0  0 100
 0 0 0  85356  8372   0   0  0  0  0  0  0  0  0  0  0   48   41   23  0  0 100

procs列の下にあるwサブ列は、スワップ・アウトされてディスクに書き込まれたプロセスの数を示します。値が0(ゼロ)以外の場合は、スワッピングが発生してシステムがメモリー不足になっています。

page列の下にあるsi列およびso列は、それぞれ1秒当たりのスワップ・インとスワップ・アウトの回数を示します。スワップ・インとスワップ・アウトは、常に0(ゼロ)にしてください。

page列の下にあるsr列は、スキャン率を示します。利用できるメモリーが不足すると、スキャン率が高くなります。

page列の下にあるpi列およびpo列は、それぞれ1秒当たりのページインとページアウトの回数を示します。ページインおよびページアウトの回数は通常、増加します。使用できるメモリーが十分にあるシステムでも、常に多少のページングは行われます。


注意:

vmstatコマンドの出力は、プラットフォーム間で異なります。 


関連項目:

出力の解釈については、manページを参照してください。 

8.2.2 sar

オペレーティング・システムのアクティビティ・カウンタの累計を表示するときは、sar(system activity reporter)コマンドを使用します。表示内容はコマンドで切り替えます。


注意:

Tru64 UNIXシステムでは、sarコマンドは、UNIX SVID2互換サブセットのOSFSVIDで利用できます。 


HP-UXシステムでは、次のコマンドは、I/Oアクティビティのサマリーを10秒間隔で10回表示します。

$ sar -b 10 10

次に、このコマンドを実行した場合の出力例を示します。

13:32:45 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
13:32:55       0      14     100       3      10      69       0       0
13:33:05       0      12     100       4       4       5       0       0
13:33:15       0       1     100       0       0       0       0       0
13:33:25       0       1     100       0       0       0       0       0
13:33:35       0      17     100       5       6       7       0       0
13:33:45       0       1     100       0       0       0       0       0
13:33:55       0       9     100       2       8      80       0       0
13:34:05       0      10     100       4       4       5       0       0
13:34:15       0       7     100       2       2       0       0       0
13:34:25       0       0     100       0       0     100       0       0

Average        0       7     100       2       4      41       0       0

sar出力は、ある時点におけるシステムのI/Oアクティビティのスナップショットを提供します。複数のオプションを使用して時間隔を指定すると、出力の読取りができなくなることがあります。時間隔を4以下に指定すると、sarアクティビティ自体が出力に影響を与えることがあります。

関連項目:

sarの詳細は、manページを参照してください。 

8.2.3 iostat

端末およびディスクのアクティビティを表示するときは、iostatコマンドを使用します。表示内容は、コマンドで切り替えます。iostatコマンドの出力には、ディスク要求キューは表示されず、ビジー状態のディスクが表示されます。この情報は、I/O負荷のバランスを調整する場合に役立ちます。

次のコマンドは、端末およびディスク・アクティビティを5秒間隔で5回表示します。

$ iostat 5 5

次に、Solarisでこのコマンドを実行した場合のサンプル出力を示します。

tty          fd0           sd0           sd1           sd3          cpu
 tin tout Kps tps serv  Kps tps serv  Kps tps serv  Kps tps serv  us sy wt id
   0    1   0   0    0    0   0   31    0   0   18    3   0   42   0  0  0 99
   0   16   0   0    0    0   0    0    0   0    0    1   0   14   0  0  0 100
   0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
   0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
   0   16   0   0    0    0   0    0    2   0   14   12   2   47   0  0  1 98

大きなディスク要求キューを調べるときは、iostatコマンドを使用します。要求キューは、特定のディスク・デバイスに対するI/O要求が実行されるまでにかかる時間を示します。要求キューが発生する原因は、特定のディスクに対するI/O要求のボリュームが大きいこと、またはI/Oの平均シーク時間が長いことです。ディスク要求キューは、0(ゼロ)またはそれに近い値であることが理想的です。

8.2.4 swap、swapinfo、swapon、lsps


関連項目:

Mac OS Xシステムのスワップ領域の詳細は、「使用可能および使用済のスワップ領域の決定」を参照してください。 


スワップ領域の使用量に関する情報を表示するときは、swapswapinfoswaponまたはlspsの各コマンドを使用します。スワップ領域が不足するとプロセスの応答が停止し、Out of Memoryエラーでプロセスが生成できなくなることがあります。次の表は、プラットフォームごとの適切なコマンドの一覧です。

プラットフォーム  コマンド 

AIX 

lsps -a 

HP-UX 

swapinfo -m 

LinuxおよびTru64 UNIX 

swapon -s 

Solaris 

swap -lおよびswap -s 

次の例は、Solarisでswap -lコマンドを実行した場合のサンプル出力です。

swapfile             dev        swaplo blocks        free  
/dev/dsk/c0t3d0s1    32,25      8      197592        162136

8.2.5 AIXのツール

次の各項では、AIXシステムで利用できるツールについて説明します。

8.2.5.1 Base Operation Systemツール

AIXのBase Operation System(BOS)は、UNIXシステムに従来組み込まれていたパフォーマンス・ツールや、AIXの実装固有の機能を管理するパフォーマンス・ツールで構成されています。次の表は、最も重要なBOSツールの一覧です。

ツール  機能 

lsattr 

デバイスの属性を表示します。 

lslv 

論理ボリューム、つまり物理ボリュームに対する論理ボリュームの割当てに関する情報を表示します。 

netstat 

ネットワーク関連のデータ構造の内容を表示します。 

nfsstat 

ネットワーク・ファイル・システム(NFS)とリモート・プロシージャ・コール(RPC)のアクティビティに関する統計を表示します。 

nice 

プロセスの初期優先順位を変更します。 

no 

ネットワーク・オプションを表示または設定します。 

ps 

1つまたは複数のプロセスのステータスを表示します。 

reorgvg 

ボリューム・グループ内の物理パーティション割当てを再編成します。 

time 

経過した実行時間、ユーザーのCPU処理時間およびシステムのCPU処理時間を表示します。 

trace 

選択したシステム・イベントを記録および報告します。 

vmo 

Virtual Memory Managerのチューニング可能なパラメータを管理します。 

8.2.5.2 Performance Toolbox

AIX Performance Toolbox(PTX)には、システム・アクティビティをローカルおよびリモートで監視およびチューニングするためのツールがいくつか含まれています。PTXは、PTX ManagerとPTX Agentという2つのコンポーネントで主に構成されています。PTX Managerは、xmperfユーティリティを使用して、構成内の様々なシステムからデータを収集し、表示します。PTX Agentは、xmserdデーモンを使用して、データを収集しPTX Managerに転送します。PTX Agentは、Performance Aide for AIXと呼ばれる製品として個別に利用することもできます。

PTXとPerformance Aideの両方には、次の表に示す監視およびチューニング・ツールがあります。

ツール  説明 

fdpr 

特定の作業負荷にあわせて実行可能プログラムを最適化します。 

filemon 

トレース機能を使用して、ファイル・システムのアクティビティを監視および報告します。 

fileplace 

論理ボリュームまたは物理ボリューム内の特定のファイルについて、ブロックの配置を表示します。 

lockstat 

カーネル・ロックの競合に関する統計を表示します。 

lvedit 

ボリューム・グループ内の論理ボリュームを対話方式で配置します。 

netpmon 

トレース機能を使用して、ネットワークI/Oおよびネットワーク関連のCPU使用率を報告します。 

rmss 

様々なサイズのメモリーでシステムをシミュレートし、パフォーマンスをテストします。 

svmon 

仮想メモリーの使用量に関する情報を取得し、分析します。 

syscalls 

システム・コールを記録し、カウントします。 

tprof 

trace機能を使用して、モジュールとソース・コード文の各レベルでCPU使用率を報告します。 

BigFoot 

プロセスのメモリー・アクセス・パターンを報告します。 

stem 

サブルーチン・レベルのエントリを許可し、既存の実行可能ファイルのインスツルメント処理を終了します。 

関連項目:

  • 各ツールの詳細は、『Performance Toolbox for AIX Guide and Reference』を参照してください。

  • 一部のツールの構文は、『AIX 5L Performance Management Guide』を参照してください。

 

8.2.5.3 System Management Interface Tool

AIX System Management Interface Tool(SMIT)は、様々なシステム管理およびパフォーマンス・ツールに対して、メニュー方式のインタフェースを提供します。SMITを使用すると、実行するジョブを中心に様々なツールにナビゲートできます。

8.2.6 HP-UXのツール

次のパフォーマンス分析ツールは、HP-UXシステムで使用できます。

次の表は、HP-UXでパフォーマンス・チューニングの追加に使用できるパフォーマンス・チューニング・ツールの一覧です。

ツール  機能 

caliper
(Itaniumのみ) 

高速の動的インスツルメント処理とともに、キャッシュ・ミス、Translation Look-aside Buffer(TLB)、命令サイクルなどのシステム分析タスク用にランタイム・アプリケーション・データを収集します。C、C++、Fortranおよびアセンブリ・アプリケーション用の動的パフォーマンス測定ツールです。  

gprof 

プログラムの実行プロファイルを作成します。 

monitor 

プログラム・カウンタを監視し、特定の関数をコールします。 

netfmt 

ネットワークを監視します。 

netstat 

ネットワーク・パフォーマンスに関する統計を報告します。 

nfsstat 

ネットワーク・ファイル・システム(NFS)とリモート・プロシージャ・コール(RPC)のアクティビティに関する統計を表示します。 

nettl 

ロギングとトレースによって、ネットワーク・イベントまたはパケットを取得します。 

prof 

Cプログラムの実行プロファイルを作成してプログラムのパフォーマンス統計を表示し、そのプログラムが実行時間の大半を消費している箇所を示します。 

profil 

プログラム・カウンタ情報をバッファにコピーします。 

top 

システムの上位プロセスを表示し、その情報を定期的に更新します。 

8.2.7 Linuxのツール

Linuxシステムでは、topfreeおよびcat /proc/meminfoコマンドを使用して、スワップ領域、メモリーおよびバッファの使用量を表示します。

8.2.8 Solarisのツール

Solarisシステムでは、mpstatコマンドを使用して、マルチプロセッサ・システムのプロセッサごとの統計を表示します。表の各行は、1プロセッサのアクティビティを示します。1行目は、起動してからのすべてのアクティビティをまとめて表示します。後続の各行は、時間隔でのアクティビティをまとめて表示します。特に指定しないかぎり、すべての値は1秒当たりのイベント数です。引数は、統計および反復回数の時間隔を示します。

次の例は、Solarisでmpstatコマンドを実行した場合のサンプル出力です。

CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0    0   0    1    71   21   23    0    0    0    0    55    0   0   0  99
  2    0   0    1    71   21   22    0    0    0    0    54    0   0   0  99
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0    0   0    0    61   16   25    0    0    0    0    57    0   0   0 100
  2    1   0    0    72   16   24    0    0    0    0    59    0   0   0 100

8.2.9 Mac OS Xのツール

次のパフォーマンス・チューニング・ツールを追加して使用できます。

8.3 メモリー管理のチューニング

メモリー・チューニング・プロセスでは、最初にページングおよびスワッピング領域を測定して、使用可能なメモリー量を確認します。システムのメモリー使用量の確認後、Oracleバッファ・キャッシュをチューニングします。

Oracleバッファ・マネージャによって、アクセス頻度の最も高いデータをキャッシュに長く保存できます。バッファ・マネージャを監視し、バッファ・キャッシュをチューニングすると、Oracle Databaseのパフォーマンスが大幅に向上することがあります。各システムのOracle Databaseバッファ・サイズの最適値は、システム全体の負荷や他のアプリケーションと比較した場合のOracle Databaseの優先順位によって異なります。

この項では、次の項目について説明します。

8.3.1 十分なスワップ領域の割当て

スワッピングは、オペレーティング・システムのオーバーヘッドに大きく影響するため、最小限に抑える必要があります。スワッピングが行われているかどうかを調べるには、sarコマンドまたはvmstatコマンドを使用します。この2つのコマンドで使用するオプションについては、manページを参照してください。

システムでスワッピングが行われている場合は、メモリーを節約するために、次の処理を行います。

スワップ領域の使用量を確認するには、使用しているプラットフォームに応じて、次のいずれかのコマンドを実行します。

プラットフォーム  コマンド 

AIX 

lsps -a 

HP-UX 

swapinfo -m 

Linux 

swapon -s 

Solaris 

swap -lおよびswap -s 

Tru64 UNIX 

swapon -s 

スワップ領域をシステムに追加するには、使用しているプラットフォームに応じて、次のいずれかのコマンドを実行します。

プラットフォーム  コマンド 

AIX 

chpsまたはmkps 

HP-UX 

swapon 

Linux 

swapon -a 

Solaris 

swap -a 

Tru64 UNIX 

swapon -a 

スワップ領域は、物理メモリーの2〜4倍に設定してください。スワップ領域の使用量を監視し、必要に応じて値を大きくしてください。

関連項目:

これらのコマンドの詳細は、オペレーティング・システムのドキュメントを参照してください。 

8.3.2 ページングの制御

プログラムを実行するためにプログラム全体をメモリーに格納しておく必要はないため、ページングはスワッピングほど深刻な問題ではありません。少量のページアウトでは、システムのパフォーマンスにほとんど影響はありません。

大量のページングを検出するには、高速応答時またはアイドル時の測定値と、低速応答時の測定値を比較します。

ページングを監視するには、vmstat(Mac OS Xではvm_stat)またはsarコマンドを使用します。

関連項目:

プラットフォームの監視結果の解釈については、manページまたはオペレーティング・システムのドキュメントを参照してください。 

次の表は、これらのコマンドの出力から得られる重要な列の一覧です。

プラットフォーム    機能 

Solaris 

vflt/s 

アドレス変換ページ・フォルトの数を示します。アドレス変換フォルトは、プロセスが、メモリー内にない有効ページを参照したときに発生します。 

Solaris 

rclm/s 

ページアウト・アクティビティによって再生され、空きリストに追加された有効ページ数を示します。この値は0(ゼロ)である必要があります。 

HP-UX 

at 

アドレス変換ページ・フォルトの数を示します。アドレス変換フォルトは、プロセスが、メモリー内にない有効ページを参照したときに発生します。 

HP-UX 

re 

ページアウト・アクティビティによって再生され、空きリストに追加された有効ページ数を示します。この値は0(ゼロ)である必要があります。 

システムで大量のページアウト・アクティビティが常に発生している場合は、次の方法で解決してください。

8.3.3 Oracleブロック・サイズの調整

読取り操作時には、オペレーティング・システムのブロック全体がディスクから読み取られます。データベースのブロック・サイズが、オペレーティング・システムのファイル・システムのブロック・サイズより小さい場合は、I/O帯域幅の効率が悪くなります。Oracle Databaseのブロック・サイズをファイル・システムのブロック・サイズの倍数になるように設定すると、パフォーマンスを最大5パーセント向上させることができます。

データベースのブロック・サイズは、DB_BLOCK_SIZE初期化パラメータで設定します。ただし、このパラメータの値を変更するには、データベースを再作成する必要があります。

DB_BLOCK_SIZEパラメータの現在の設定値を調べるには、SQL*PlusのSHOW PARAMETER DB_BLOCK_SIZEコマンドを実行します。

8.4 ディスクI/Oのチューニング

使用可能なディスク全体でI/Oを均等に分散して、ディスクへのアクセス時間が短くなるようにしてください。小規模なデータベースやRAIDを使用しないデータベースでは、それぞれのデータファイルと表領域を使用可能なディスク間に分散してください。

8.4.1 自動ストレージ管理の使用

データベース記憶域に自動ストレージ管理を使用すると、すべてのデータベースI/Oが、自動ストレージ管理ディスク・グループ内の使用可能なすべてのディスク・デバイス間に分散されます。自動ストレージ管理では、RAWデバイスを管理する煩わしさがなく、RAWデバイスI/Oのパフォーマンスが向上します。

自動ストレージ管理を使用することで、ディスクI/Oを手動でチューニングする必要がなくなります。

8.4.2 適切なファイル・システム・タイプの選択

使用するオペレーティング・システムに応じて、いくつかのファイル・システム・タイプから選択できます。ファイル・システム・タイプごとにそれぞれ特性が異なります。このことが、データベースのパフォーマンスに大きな影響を与えます。次の表に、一般的なファイル・システム・タイプを示します。

ファイル・システム  プラットフォーム  説明 

S5 

HP-UXおよびSolaris 

UNIX System Vファイル・システム 

UFS 

AIX、HP-UX、Mac OS X、Solaris、Tru64 UNIX 

Unifiedファイル・システム(BSD UNIXから派生)

注意: Mac OS Xシステムでは、ソフトウェアおよびデータベース・ファイルのいずれにもUFSファイルの使用はお薦めしません。 

VxFS 

AIX、HP-UXおよびSolaris 

VERITASファイル・システム 

なし 

すべて 

RAWデバイス(ファイル・システムなし) 

ext2/ext3 

Linux 

Linux用拡張ファイル・システム 

OCFS 

Linux 

Oracle Clusterファイル・システム 

AdvFS 

Tru64 UNIX 

Advancedファイル・システム 

CFS 

Tru64 UNIX 

クラスタ・ファイル・システム 

JFS/JFS2 

AIX 

ジャーナル・ファイル・システム 

HFS Plus、HFSX 

Mac OS X 

HFS Plusは、Mac OS Xにより使用される標準の階層ファイル・システムです。HFSXはHFS Plusの拡張で、大/小文字を区別したファイル名を使用できます。 

GPFS 

AIX 

一般的なパラレル・ファイル・システム 

ファイル・システムとアプリケーションには、必ずしも互換性があるとはかぎりません。たとえば、Unifiedファイル・システムの各実装間でさえ、互換性の比較は容易ではありません。選択したファイル・システムによって、パフォーマンスに最大20パーセントの開きが出る場合があります。ファイル・システムを使用する場合は、次のことを行ってください。

8.5 ディスク・パフォーマンスの監視

次の項では、ディスク・パフォーマンスの監視方法について説明します。

Mac OS Xでのディスク・パフォーマンスの監視

ディスク・パフォーマンスを監視するには、iostatコマンドおよびsarコマンドを使用します。これらのコマンドの使用方法は、manページを参照してください。

その他のオペレーティング・システムでのディスク・パフォーマンスの監視

ディスク・パフォーマンスを監視するには、sar -bおよびsar -uコマンドを使用します。

次の表に、sar -bコマンド出力の列をいくつか示します。これらの列は、ディスク・パフォーマンスの分析に重要です。

  説明 

bread/sbwrit/s 

1秒ごとに読み取られるブロック数と書き込まれるブロック数(ファイル・システム・データベースに重要) 

pread/spwrit/s 

1秒ごとに読み取られるパーティション数と書き込まれるパーティション数(RAWパーティション・データベース・システムに重要) 

ディスク・パフォーマンスの分析に重要なsar -u列の1つに、%wioがあります。これによって、ブロックされたI/Oで待機するCPU時間の割合がわかります。


注意:

一部のLinuxでは、sar -uコマンドの出力結果に%wio列が表示されません。詳細なI/O統計を表示するには、iostat -xコマンドを使用できます。 


キー・インジケータは次のとおりです。

8.6 システム・グローバル領域

SGAとは、共有メモリーに格納されているOracle構造体のことです。この構造体には、静的データ構造体、ロックおよびデータ・バッファが含まれています。各OracleプロセスがSGA全体をアドレス指定するためには、十分な共有メモリーが必要です。

1つの共有メモリー・セグメントの最大サイズは、shmmax(Tru64 UNIX ではshm_max)カーネル・パラメータで指定します。

次の表に、このパラメータの推奨値をプラットフォームごとに示します。

プラットフォーム  推奨値 

AIX 

該当なし 

HP-UX 

システムに搭載された物理メモリーのサイズ。

関連項目: HP-UXのshmmaxパラメータの詳細は、「Oracleインスタンス用のHP-UX共有メモリー・セグメント」を参照してください。 

Linux 

システムに搭載された物理メモリーの半分のサイズ。 

Mac OS X 

システムに搭載された物理メモリーの半分のサイズ。 

SolarisおよびTru64 UNIX 

4294967295または4GBマイナス16MB。

注意: Oracle Databaseインスタンスを起動する場合は、shm_maxパラメータの値を16MB以上にする必要があります。システムでOracle9i DatabaseとOracle Database 10gの両方のインスタンスが動作している場合は、このパラメータの値を2GBマイナス16MBに設定する必要があります。Solarisの場合、この値は、64ビットのシステムでは4GBより大きくすることも可能です。 

SGAのサイズが共有メモリー・セグメントの最大サイズ(shmmaxまたはshm_max)を超える場合、Oracle Databaseでは、要求されたSGAサイズになるように、連続したセグメントが連結されます。shmsegカーネル・パラメータ(Tru64 UNIXではshm_seg)には、任意のプロセスで連結できるセグメントの最大数を指定します。SGAのサイズを制御するには、次の初期化パラメータを設定します。

または、SGAサイズを自動的にチューニングできるように、SGA_TARGET初期化パラメータを設定します。

これらのパラメータの値は、十分注意して設定してください。値を大きく設定しすぎると、物理メモリーに対する共有メモリーの割合が大きくなりすぎます。そのため、パフォーマンスが低下します。

共有サーバーで構成されているOracle Databaseでは、SHARED_POOL_SIZE初期化パラメータの値を大きく設定するか、LARGE_POOL_SIZE初期化パラメータを使用したカスタム構成が必要です。Oracle Universal Installerを使用してデータベースをインストールした場合、SHARED_POOL_SIZEパラメータの値は、Oracle Database Configuration Assistantによって自動的に設定されます。ただし、データベースを手動で作成した場合は、パラメータ・ファイルでSHARED_POOL_SIZEパラメータの値を同時ユーザーごとに1KBずつ増やしてください。

8.6.1 SGAサイズの確認

次のいずれかの方法で、SGAサイズを確認できます。

8.6.2 AIXでの共有メモリー


注意:

この項の内容は、AIXのみに適用されます。 


共有メモリーとしてプロセス間で共通の仮想メモリー・リソースが使用されます。各プロセスは、パフォーマンスを向上させるために、表やキャッシュ・エントリなどの共通の仮想メモリー変換リソース・セットを介して仮想メモリー・セグメントを共有します。

ページングを回避し、I/Oのオーバーヘッドを減らすために共有メモリーを確保できます。これを実行するには、LOCK_SGAパラメータをtrueに設定します。AIX 5Lの場合、基礎となるハードウェアでラージ・ページ機能がサポートされていれば、同じパラメータによってその機能がアクティブになります。

確保されたメモリーをOracle Databaseで利用できるようにするには、次のコマンドを実行します。

$ /usr/sbin/vmo -r -o v_pinshm=1

確保されたメモリーに利用できる実メモリーの最大量を設定するには、次のようなコマンドを実行します。percent_of_real_memoryは、設定する実メモリーの最大量(パーセント)です。

$ /usr/sbin/vmo -r -o maxpin%=percent_of_real_memory

maxpin%オプションを使用しているときは、確保されたメモリーの量がOracle SGAのサイズに対して、システムの実メモリーの3パーセント以上であることが重要です。これにより、確保可能な空きメモリーをカーネルが使用できます。たとえば、物理メモリーが2GBであり、SGAを400MB(RAMの20パーセント)確保する場合は、次のコマンドを実行します。

$ /usr/sbin/vmo -r -o maxpin%=23

システムの操作時に確保されたメモリーの使用量を監視するには、svmonコマンドを使用します。Oracle Databaseは、LOCK_SGAパラメータがtrueに設定されている場合にのみメモリーを確保しようとします。

AIX POWER4-Based SystemsおよびPOWER5-Based Systemsでのラージ・ページ機能

POWER4またはPOWER5システム上でサイズがぞれぞれ16MBのラージ・ページを10件オンにして予約するには、次のコマンドを実行します。

$ /usr/sbin/vmo -r -o lgpg_regions=10 -o lgpg_size=16777216

このコマンドは、bosbootを提案し、変更を有効にするには再起動する必要があることを示す警告を表示します。

SGA全体を格納できるラージ・ページを指定することをお薦めします。LOCK_SGAパラメータがtrueに設定されている場合、Oracle Databaseインスタンスではラージ・ページを割り当てようとします。SGAのサイズが確保可能なメモリー・サイズまたはラージ・ページのサイズを超える場合は、これらのサイズを超えるSGA部分が通常の共有メモリーに割り当てられます。

関連項目:

確保されたメモリーやラージ・ページの有効化およびチューニングについては、AIXのドキュメントを参照してください。 

8.7 オペレーティング・システムのバッファ・キャッシュのチューニング

RAWデバイスを最大限に活用するには、Oracle Databaseバッファ・キャッシュのサイズを調整します。メモリーに制限がある場合は、オペレーティング・システムのバッファ・キャッシュも調整します。

オペレーティング・システムのバッファ・キャッシュには、メモリーからディスクまたはディスクからメモリーへの転送中に、メモリー内のデータ・ブロックが保持されます。

Oracle Databaseバッファ・キャッシュは、Oracle Databaseバッファを格納するためのメモリー内の領域です。Oracle DatabaseではRAWデバイスを使用できるため、オペレーティング・システムのバッファ・キャッシュは使用しません。

RAWデバイスを使用する場合は、Oracle Databaseバッファ・キャッシュのサイズを大きくします。システムで使用できるメモリーに制限がある場合は、それに応じてオペレーティング・システムのバッファ・キャッシュのサイズを小さくします。

調整するバッファ・キャッシュを判断するには、sarコマンドを使用します。

関連項目:

sarコマンドの詳細は、Tru64 UNIXのmanページを参照してください。 


注意:

Tru64 UNIXの場合は、オペレーティング・システムのバッファ・キャッシュを小さくしないでください。これは、オペレーティング・システムでは、ファイル・システムI/Oのバッファリングに必要なメモリー量が自動的にサイズ変更されるためです。オペレーティング・システムのバッファ・キャッシュを制限すると、パフォーマンスの問題が発生する可能性があります。 



戻る 次へ
Oracle
Copyright © 2006, 2009, Oracle and/or its affiliates.
All Rights Reserved.
目次
目次
索引
索引