C IBM AIX on POWER Systems (64-Bit)でのOracle Databaseの管理
この付録では、IBM AIX on POWER Systems (64-bit)でのOracle Databaseの管理について説明します。
次のトピックが含まれています:
C.1 メモリーおよびページング
メモリーの競合は、プロセスに必要なメモリー量が、使用できる容量よりも大きくなったときに発生します。このようなメモリー不足に対処するため、メモリーとディスク間でプログラムおよびデータのページングが行われます。
この項では、次の項目について説明します。
C.1.1 カーネル・パラメータ
デフォルトのAIXカーネル設定を使用することをお薦めします。IBMサポートのみで適切に推奨されているようにカーネル設定を調整する必要があります。
注意:
IBMサポートからの指示なくRestricted Tunablesパラメータを調整すると、システムの安定性およびパフォーマンスに望ましくない影響が生じることがあります。C.1.2 十分なページング領域の割当て
通常、ページング領域(スワップ領域)が十分に割り当てられていないと、システムのレスポンスが停止したり、レスポンス時間が非常に遅くなります。IBM AIX on POWER Systems (64-bit)では、RAWディスク・パーティションにページング領域を動的に追加できます。構成するページング領域の大きさは、実装されている物理メモリーの量およびアプリケーションのページング領域要件によって異なります。ページング領域の使用量を監視するには、lsps
コマンドを使用します。システムのページング・アクティビティを監視するには、vmstat
コマンドを使用します。ページング領域を増やすには、smit pgsp
コマンドを使用します。
ページング領域を事前に割り当てる場合は、ページング領域をRAMの量よりも大きい値に設定することをお薦めします。ただし、IBM AIX on POWER Systems (64-bit)では、ページング領域は必要になるまで割り当てられません。システムでは、実メモリーが不足した場合にのみスワップ領域が使用されます。メモリーのサイズを正しく設定した場合は、ページングが行われないため、ページング領域を小さくできます。要求されるページ数が大きく変動しないワークロードの場合は、小さいページング領域でも適切に動作します。ページングが極端に増加する可能性があるワークロードの場合は、最大ページ数を処理できるだけの十分なページング領域が必要です。
原則として、ページング領域の初期設定はRAMの半分のサイズに4GBを追加したものになります(最大は単一の内部ディスクのサイズまで)。lsps -a
コマンドを使用してページング領域の使用量を監視し、vmstat
コマンドを使用してシステムのページング・アクティビティを監視します。lsps -a
により出力されるメトリック%Usedは、正常なシステムでは通常25%未満です。過剰な量のスワッピングはパフォーマンスに重大な影響を与えるため、適切にサイズ設定されているデプロイメントにはページング領域はほとんど必要ありません。ページング領域およびスワッピングを過剰に使用すると、システム上のRAMが不足することがあります。
注意:
ページング領域のサイズは小さくしないでください。小さくすると、領域が不足してアクティブなプロセスが終了します。一方、ページング領域のサイズが大きすぎても、悪影響はほとんどありません。
Oracleドキュメントでは、Oracle Databaseの初期設定として次の値が推奨されています。
RAM | スワップ領域 |
---|---|
1から2GB | RAMのサイズの1.5倍 |
2GBから16GB | RAMのサイズと同じ |
16GB超 | 16GB |
RAMおよびOracle Grid Infrastructureのスワップ領域値は次のとおりです。
-
4GB RAMから16GB RAMの間。スワップ領域はRAMのサイズと同じである必要があります。
-
16GB RAMを超える場合、スワップ領域は16GBと同じである必要があります。
個々のサーバー環境は異なるため、Oracle Database 18c環境では18cのメモリー・フットプリントおよび4KBから64KBまでのページ・サイズの増大に基づいて一部の追加メモリーが保証されています。ワークロードをリバランスしてページングを減らす必要がある場合がありますが、これによりシステムのパフォーマンスに影響があります。
C.1.3 ページングの制御
過剰なページングが頻繁に発生する場合は、実メモリーが過剰にコミットされていることを示します。通常は、次のように対処します。
-
ベージングが頻繁に発生しないようにします。ただし、システムに超高速の拡張記憶域を装備し、メモリーと拡張記憶域間のページングが、Oracle DatabaseによるSGAとディスク間のデータの読取り/書込みよりも大幅に速くなる場合を除きます。
-
制限されたメモリー・リソースを、システム・パフォーマンスが最も向上する場所に割り当てます。場合によっては、メモリー・リソース要件とその影響のバランスを取るために、この処理を繰り返し行う必要があります。
-
メモリーが不足している場合は、システム内のメモリーを必要とするプロセスおよび要素を優先順に並べたリストを作成します。パフォーマンスが最も向上する場所に、メモリーを割り当てます。優先順リストの例を次に示します。
-
オペレーティング・システムおよびRDBMSカーネル(SGAおよびそのコンポーネント、バッファ、キャッシュおよび共有プールを含めるため)
-
ユーザー・プロセスおよびアプリケーション・プロセス
-
たとえば、Oracle Databaseの動的パフォーマンス表およびビューを問い合せた結果、共有プールとデータベース・バッファ・キャッシュの両方にメモリーを追加する必要があるとします。この場合、制限された予備メモリーは、データベース・ブロック・バッファ・キャッシュではなく共有プールに割り当てるとパフォーマンスが向上します。これらの選択肢は、データベースのロードの性質または形状によって異なります。
次のIBM AIX on POWER Systems (64-bit)コマンドを実行すると、ページングのステータスおよび統計が表示されます。
-
vmstat -s
-
vmstat
interval
[
repeats
]
-
sar -r
interval
[
repeats
]
C.1.4 データベース・ブロック・サイズの設定
Oracle Databaseのブロック・サイズを構成すると、入出力スループットを改善できます。IBM AIX on POWER Systems (64-bit)では、DB_BLOCK_SIZE
初期化パラメータの値を2から32KBに設定できます。デフォルト値は4KBです。Oracle Databaseがジャーナル・ファイル・システムにインストールされている場合は、そのブロック・サイズをファイル・システムのブロック・サイズ(JFSでは4KB、IBM Spectrum Scale (GPFS)では16KBから1MB)の倍数にする必要があります。データベースがRAWパーティション上にある場合は、Oracle Databaseのブロック・サイズをオペレーティング・システムの物理ブロック・サイズ(IBM AIX on POWER Systems (64-Bit)では512バイト)の倍数にします。
Oracle Databaseのブロック・サイズは、オンライン・トランザクション処理ワークロードまたは複合ワークロードの環境では小さめ(2または4KB)に設定し、意思決定支援システム・ワークロードの環境では大きめ(8、16または32KB)に設定することをお薦めします。
C.1.5 ログ・アーカイブ・バッファのチューニング
トランザクションが長い場合や数が多い場合は特に、LOG_BUFFER
サイズを大きくすることで、データベースのアーカイブ速度を向上させることができます。ログ・ファイル入出力アクティビティおよびシステム・スループットを監視して、最適なLOG_BUFFER
サイズを決定します。LOG_BUFFER
パラメータをチューニングするときは、通常のデータベース・アクティビティの全体的なパフォーマンスが低下しないように注意します。
パフォーマンスを向上させるため、デフォルトの4KBではなく512バイトのagblksize
で、REDOログ・ファイルと制御ファイル用に個別のファイル・システム(または両方用に単一のファイル・システム)を作成します。
C.2 ディスク入出力の問題
ディスク入出力の競合は、メモリー管理が良好でない(その結果としてページングおよびスワッピングが発生する)場合や、ディスク間の表領域およびファイルの分散が適切でない場合に発生します。
filemon
、sar
、iostat
などのIBM AIX on POWER Systems (64-bit)ユーティリティおよびその他のパフォーマンス・ツールを使用して入出力アクティビティの高いディスクを特定し、複数のディスク・ドライブに入出力アクティビティを均等に分散します。
この項では、次の項目について説明します。
C.2.1 IBM AIX on POWER Systems (64-Bit)論理ボリューム・マネージャ
IBM AIX on POWER Systems (64-bit)論理ボリューム・マネージャは、複数のディスク間にデータをストライプ化して、ディスクの競合を減らすことができます。ストライプ化の主な目的は、大容量の順次ファイルに対する読取り/書込みのパフォーマンスを向上させることです。記憶域サブシステムが向上したため、LVMのストライプ化の使用は推奨されなくなりました。記憶域サブシステムによるデフォルトのストライプ化の使用をお薦めします。AIXパーティションに存在するLUNは論理的であって物理的ではないため、オペレーティング・システムでデータの物理的な場所が認識されなくなりました。
C.2.2 RAW論理ボリュームと比較した場合のジャーナル・ファイル・システムの使用
ジャーナル・ファイル・システムまたはRAW論理ボリュームのどちらを使用するかを決定するときには、次のことを考慮してください。
-
ファイル・システムは、実装の多様化に伴い、継続的に改善されています。
-
様々なベンダーが、各ディスクの長所を生かすために、様々な方法でファイル・システム・レイヤーを実装しています。その結果、プラットフォーム間でファイル・システムを比較することが難しくなっています。
-
IBM AIX on POWER Systems (64-bit)に組み込まれているダイレクト入出力機能および同時入出力機能により、ファイル・システムのパフォーマンスはRAW論理ボリュームと同じレベルまで向上します。
-
以前のバージョンのIBM AIX on POWER Systems (64-bit)では、ファイル・システムはバッファに対する読取り/書込みのみをサポートしており、inodeロックが不完全なために余計な競合が発生していました。この2つの問題は、JFS2の同時入出力機能およびSpectrum Scale (GPFS)のダイレクト入出力機能によって解決されています。
-
より強力な論理ボリューム・マネージャ・インタフェースを導入すると、RAW論理ボリュームに基づいた論理ディスクの構成およびバックアップの作業が大幅に減少します。
-
Oracle ASMは、RAWディスク・デバイスがディスク・グループに追加された場合に最も効果的に機能します。Oracle ASMを使用している場合は、論理ボリューム・マネージャを使用してストライプ化を行わないでください。Oracle ASMは、ストライプ化およびミラー化を実装します。
注意:
Oracle RACオプションを使用するには、Oracle ASMディスク・グループまたはSpectrum Scale (GPFS)ファイル・システムにデータファイルを配置する必要があります。JFSまたはJFS2は使用できません。Spectrum Scale (GPFS)を使用すると、ダイレクト入出力が暗黙的に有効になります。
ファイル・システム・オプション
IBM AIX on POWER Systems (64-bit)では、ダイレクト入出力および同時入出力がサポートされています。ダイレクト入出力および同時入出力のサポートにより、データベース・ファイルがファイル・システム上に存在できるようになります。これは、Oracle Databaseが提供する機能を使用して、オペレーティング・システムのバッファ・キャッシュを回避し、冗長なinodeロック操作を排除することで実現されます。
次の表に、IBM AIX on POWER Systems (64-bit)で使用できるファイル・システムとその推奨設定を示します。
ファイル・システム | オプション | 説明 |
---|---|---|
JFS |
dio |
JFSでは、同時入出力は使用できません。ダイレクト入出力は使用できますが、同時入手力を使用したJFS2と比較してパフォーマンスが劣ります。 |
JFSラージ・ファイル |
なし |
128KBの位置合せ制約によってダイレクト入出力が使用できないため、JFSラージ・ファイルをOracle Databaseに使用することは推奨されません。 |
JFS2 |
cio |
同時入出力は、同一のファイルに対して複数の同時リーダー/ライターをサポートしているため、ダイレクト入出力よりもJFS2に適した設定です。ただし、JFS2/CIOに対するIBM AIX on POWER Systems (64-bit)制限のため、同時入出力はOracleデータファイル、制御ファイルおよびログ・ファイルでのみ使用されます。このような目的専用のファイル・システムにのみ適用してください。同じ理由から、
注意: Oracle Database 11gリリース2 (11.2.0.2)以上の場合、IBM AIX on POWER Systems (64-bit) 6.1以上のシステムでは、JFS2ファイル・システム上で |
Spectrum Scale (GPFS) |
NA |
Oracle Databaseは、最適なパフォーマンスを得るために、Spectrum Scaleに対してダイレクト入出力を暗黙的に有効にします。Spectrum Scaleのダイレクト入出力は、すでに複数のノード上の複数のリーダー/ライターをサポートしています。したがって、Spectrum Scaleでは、ダイレクト入出力と同時入出力は同じです。 |
JFSおよびJFS2の考慮事項
JFS2ファイル・システムにOracle Databaseログを配置している場合、構成を最適化するには、agblksize=512
オプションを使用してファイル・システムを作成し、CIO
オプションでマウントします。
Oracle Database 12cより前のリリースでは、JFS/JFS2において、ダイレクト入出力および同時入出力をファイル・レベルで有効にできませんでした。したがって、最適なパフォーマンスを得るために、Oracleホーム・ディレクトリおよびデータファイルを別個のファイル・システムに配置する必要がありました。つまり、Oracleホーム・ディレクトリをデフォルト・オプションでマウントしたファイル・システムに配置し、データファイルおよびログをDIO
またはCIO
オプションを使用してマウントしたファイル・システムに配置していました。
Oracle Database 12cでは、JFS/JFS2において、ダイレクト入出力および同時入出力をファイル・レベルで有効にできます。そのためには、サーバー・パラメータ・ファイルのFILESYSTEMIO_OPTIONS
パラメータをSETALL
またはDIRECTIO
に設定します。これにより、すべてのデータファイル入出力に対して、JFS2での同時入力およびJFSでのダイレクト入出力が有効になります。これは、DIRECTIO
設定により、通常は使用しない非同期入出力が無効になるためです。この12cの機能により、Oracleホーム・ディレクトリと同じJFS/JFS2ファイル・システムにデータファイルを配置し、ダイレクト入出力または同時入出力を使用してパフォーマンスを向上させることができます。前述のように、最適なパフォーマンスを得るためには、Oracle Databaseログを別個のJFS2ファイル・システムに配置する必要があります。
関連項目:
詳細は、『Oracle Architecture and Tuning on AIX v2.30』を参照してください。Spectrum Scaleの考慮事項
Spectrum Scale (GPFS)を使用している場合、すべての目的に同じファイル・システムを使用できます。Oracleホーム・ディレクトリとしての使用や、データ・ファイルやログの格納などです。最適なパフォーマンスを得るため、大きなSpectrum Scaleブロック・サイズ(通常、512KB以上)を使用する必要があります。Spectrum Scaleはスケーラビリティのために設計されているため、データの量が単一のSpectrum Scaleファイル・システムに収まるかぎり、複数のSpectrum Scaleファイル・システムを作成する必要はありません。
C.2.3 非同期入出力の使用
Oracle Databaseでは、IBM AIX on POWER Systems (64-bit)が提供する非同期入出力を最大限に利用して、データベース・アクセスを高速化しています。
IBM AIX on POWER Systems (64-bit)では、ファイル・システム・パーティション上に作成されたデータベース・ファイルに対して、非同期入出力がサポートされています。ファイル・システムに対して非同期入出力を使用するときは、リクエストがキューから取り出されてから完了するまで、カーネル・データベース・プロセス(aioserver
)が各リクエストを制御します。aioserver
サーバーの数により、システムで同時に処理できる非同期入出力リクエストの数が決まります。AIOチューナブルのデフォルト設定が大幅に増大されているため、AIOチューナブルを調整する必要はありません。
C.2.4 入出力スレーブ
入出力スレーブは、入出力のみを実行する特殊なOracleプロセスです。非同期入出力がデフォルトであり、IBM AIX on POWER Systems (64-bit)でのOracleによる入出力操作の実行に推奨されている方法であるため、入出力スレーブはIBM AIX on POWER Systems (64-bit)ではほとんど使用されません。入出力スレーブは、共有メモリー・バッファから割り当てられます。入出力スレーブには、次の表に示す初期化パラメータを使用します。
パラメータ | 値の範囲 | デフォルト値 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
0 - 999 |
0 |
|
1-20 |
1 |
通常、この表のパラメータは調整しません。ただし、ワークロードが大きい場合に、データベース・ライターがボトルネックになることがあります。その場合は、DB_WRITER_PROCESSES
の値を大きくします。このデータベース・ライター・プロセスの数は、システムまたはパーティション内のCPUのペアにつき1つですが、原則として、この数は増やさないでください。
非同期I/Oの無効化が必要な場合があります。たとえば、デバッグのためにOracleサポートから指示された場合などです。DISK_ASYNCH_IO
およびTAPE_ASYNCH_IO
パラメータを使用すると、ディスクまたはテープ・デバイスに対する非同期I/Oを無効にできます。TAPE_ASYNCH_IO
のサポートは、メディア・マネージャ・ソフトウェアによってサポートされている場合にのみ使用可能であり、Recovery Managerの場合は、BACKUP_TAPE_IO_SLAVES
がtrueの場合のみ使用可能です。
DBWR_IO_SLAVES
パラメータは、DISK_ASYNCH_IO
パラメータがfalse
に設定されている場合にのみ、0(ゼロ)より大きい値に設定します。設定しないと、データベース・ライター・プロセスがボトルネックになります。この場合、IBM AIX on POWER Systems (64-bit)でのDBWR_IO_SLAVES
パラメータの最適値は4です。
C.2.5 DB_FILE_MULTIBLOCK_READ_COUNTパラメータの使用
Oracle Database 18cでダイレクト入出力または同時入出力を使用している場合、IBM AIX on POWER Systems (64-bit)ファイル・システムでは、順次スキャンでの先読みが実行されません。このため、ダイレクト入出力または同時入出力がOracleデータファイルに対して有効になっている場合、サーバー・パラメータ・ファイルのDB_FILE_MULTIBLOCK_READ_COUNT
値を大きくする必要があります。DB_FILE_MULTIBLOCK_READ_COUNT
初期化パラメータで指定されているように、Oracle Databaseによって先読みが実行されます。
DB_FILE_MULTIBLOCK_READ_COUNT
初期化パラメータに大きい値を設定すると、通常は順次スキャンでの入出力スループットが向上します。IBM AIX on POWER Systems (64-bit)では、このパラメータの範囲は1から512ですが、16より大きい値を使用しても、通常はそれ以上のパフォーマンス効果は得られません。
このパラメータは、DB_BLOCK_SIZE
パラメータの値との積が論理ボリューム・マネージャのストライプ・サイズよりも大きくなるように設定します。このような設定により、使用できるディスクが増加します。
C.2.6 ディスク入出力ペーシングのチューニング
ディスク入出力ペーシングとは、システム管理者がファイルに対して保留中の入出力リクエストの数を制限できるようにするIBM AIX on POWER Systems (64-bit)のメカニズムです。このメカニズムにより、ディスク入出力が頻繁に発生するプロセスでCPUが飽和状態になるのを防ぐことができます。このため、対話型プロセスやCPU使用量の多いプロセスのレスポンス時間に遅延が発生しません。
ディスク入出力ペーシングを行うには、最高水位標および最低水位標という2つのシステム・パラメータを調整します。保留中の入出力リクエストがすでに最高水位標に達しているファイルに対してプロセスが書込みを実行すると、プロセスはスリープ状態になります。未処理の入出力リクエストの数が最低水位標以下になると、プロセスはスリープ状態から解放されます。
-
minpout
=4096 -
maxpout
=8193
C.2.7 Oracle Databaseによるミラー復元
RAW論理ボリュームに割り当てられたOracleデータファイルに対してミラー書込み整合性を無効にすると、システム障害後のOracle Databaseのクラッシュ・リカバリ・プロセスでは、ミラー復元を使用したリカバリが行われます。このミラー復元プロセスにより、データベースの不整合または破損を防ぐことができます。
クラッシュ・リカバリ時に、論理ボリュームに割り当てられたデータファイルに複数のコピーがある場合、ミラー復元プロセスでは、すべてのコピーのデータ・ブロックに対してチェックサムを実行します。その後、次のいずれかの処理を実行します。
-
コピー内のデータ・ブロックのチェックサムが有効である場合、そのコピーを使用してチェックサムが無効なコピーを更新します。
-
すべてのコピーでブロックのチェックサムが無効である場合、REDOログ・ファイルの情報を使用してブロックを再構築します。次に、データファイルを論理ボリュームに書き込み、すべてのコピーを更新します。
IBM AIX on POWER Systems (64-bit)では、ミラー復元プロセスは、RAW論理ボリュームに割り当てられたデータファイルのうち、ミラー書込み整合性が無効になっているデータファイルに対してのみ機能します。ミラー化論理ボリューム上のデータファイルのうち、ミラー書込み整合性が有効になっているデータファイルには、ミラー書込み整合性によってすべてのコピーの同期が保証されているため、ミラー復元は必要ありません。
以前のリリースのOracle Databaseのアップグレード中にシステムに障害が発生し、論理ボリューム上のデータファイルのミラー書込み整合性が無効になっていた場合は、syncvg
コマンドを実行してミラー化論理ボリュームを同期化してからOracle Databaseを起動してください。ミラー化論理ボリュームを同期化せずにデータベースを起動すると、論理ボリュームのコピーから誤ったデータを読み取る場合があります。
注意:
ディスク・ドライブに障害が発生した場合、ミラー復元は行われません。syncvg
コマンドを実行してから、論理ボリュームを再度アクティブにする必要があります。
注意:
ミラー復元は、データファイルに対してのみサポートされています。REDOログ・ファイルのミラー書込み整合性は無効にしないでください。
C.3 CPUのスケジューリングおよびプロセスの優先順位
CPUも、プロセスの競合が発生する可能性があるシステム・コンポーネントです。ほとんどの場合、IBM AIX on POWER Systems (64-bit)カーネルによってCPUは効果的に割り当てられますが、プロセスの多くはCPUサイクルをめぐって競合します。システムに複数のCPU(SMP)が搭載されている場合は、各CPUで様々なレベルの競合が発生する可能性があります。
C.4 AIXTHREAD_SCOPE環境変数
IBM AIX 7.1バージョンを使用し、IBM AIX 6.1のデフォルト(システム全体)としてAIXTHREAD_SCOPE
環境変数をS (1:1)
に設定することをお薦めします。
関連項目:
スレッド・チューニングの詳細は、『Thread tuning』を参照してください。C.5 ネットワーク情報サービスの外部ネーミングのサポート
IBM AIX on POWER Systems (64-bit)では、ネットワーク情報サービスの外部ネーミング・アダプタがサポートされています。ネットワーク情報サービスの外部ネーミングを構成および使用する方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
C.6 Oracle JDBC Thin Driverを使用したIBM Java Secure Socket Extensionプロバイダの構成
IBM Java 1.6 SR 16はOracle Database 12cリリース1(12.1)に同梱されています。IBM JDKにSSLを構成する場合は、次の問題が発生する場合があります。
-
IBM JSSEが
SSLv2Hello
SSLプロトコルをサポートしないただし、クライアントのカプセル化からのSSLv2Hello
メッセージを受け入れます。SSLv3
またはTLS1.0
ハロー・メッセージ。POODLE
のセキュリティの問題の後、SSLv3
は推奨されなくなったため、Thin JDBCコネクタを使用するSSLクライアントでは、oracle.net.ss1_version
システム・プロパティをTLSv1
SSLプロトコルまたはSSLv3
SSLプロトコルを選択するように設定する必要があります。システム・プロパティの推奨設定は、推奨されるSSLv3
上でTLSV1.0
、TLSV1.1
およびTLSV1.2
を設定することです。それ以外の場合、接続に失敗します。 -
IBM JSSEは匿名暗号を許可しない
匿名暗号を使用するSSLクライアントでは、デフォルトのトラスト・マネージャを、匿名暗号を許可するカスタム・トラスト・マネージャに置き換える必要があります。
関連項目:
-
詳細は、『Padding Oracle On Downgraded Legacy Encryption (POODLE) security vulnerability』を参照してください。
-
カスタム・トラスト・マネージャの作成およびインストールの詳細は、IBM JSSEのドキュメントを参照してください。