Veritas InfoScale™ 8.0 Oracle データベース用ストレージと可用性管理 - AIX, Linux, Solaris
- 第 I 部 Oracle データベース用 SFHA (Storage Foundation High Availability) 管理ソリューション
- Storage Foundation for Databases の概要
- Veritas File System について
- Storage Foundation for Databases の概要
- 第 II 部 Veritas InfoScale 製品を使用した Oracle の配備
- Storage Foundation 環境への Oracle オプションの配備
- Storage Foundation を使用した Oracle の配備
- Storage Foundation を使用したオフホスト設定での Oracle の配備
- High Availability を使用した Oracle の配備
- ディザスタリカバリ用 VVR (Volume Replicator) を使用した Oracle の配備
- Storage Foundation 環境への Oracle オプションの配備
- 第 III 部 Storage Foundation for Databases (SFDB) ツールの設定
- Storage Foundation for Databases リポジトリデータベースの設定および管理
- Storage Foundation for Databases (SFDB) リポジトリの設定
- Storage Foundation for Databases (SFDB) ツールの認証の設定
- Storage Foundation for Databases リポジトリデータベースの設定および管理
- 第 IV 部 Oracle データベースのパフォーマンスの向上
- データベースアクセラレータについて
- Veritas Extension for Oracle Disk Manager によるデータベースパフォーマンスの向上
- Veritas Cached Oracle Disk Manager によるデータベースパフォーマンスの向上
- SFHA 環境の Cached ODM について
- SFHA 環境の Cached ODM の設定
- SFHA 環境の Cached ODM Advisor による Cached ODM 設定の管理
- SFHA 環境の Cached ODM Advisor を使用した候補データファイルのレポートの生成
- Quick I/O によるデータベースパフォーマンスの向上
- Quick I/O について
- Cached Quick I/O によるデータベースパフォーマンスの向上
- 第 V 部 PITC (Point-In-Time Copy) の使用
- PITC 方法の理解
- ボリュームレベルのスナップショット
- ボリュームレベルのスナップショット(FlashSnap)の逆再同期について
- Storage Checkpoint
- FileSnap について
- Oracle PITC に関する注意事項
- サードミラーブレークオフスナップショットの管理
- 領域最適化スナップショットの管理
- Storage Checkpoint の管理
- リカバリのための Database Storage Checkpoint
- FileSnap スナップショットの管理
- SFHA 環境での NetBackup によるバックアップとリストア
- PITC 方法の理解
- 第 VI 部 Oracle に対するストレージコストの最適化
- SmartTier によるストレージの階層化について
- SmartTier の設定と管理
- Oracle での SmartTier のユースケース
- ストレージコストを最適化するためのファイルとデータベースの圧縮
- 圧縮アドバイザツールの使用
- 第 VII 部 Oracle ディザスタリカバリの管理
- 第 VIII 部 Storage Foundation for Databases 管理リファレンス
- Storage Foundation for Databases コマンドリファレンス
- Storage Foundation for Databases のチューニング
- SFDB ツールのトラブルシューティング
- Oracle データベースの手動によるリカバリ
- 6.0 より前のリリースの Storage Foundation for Databases のコマンドリファレンス
- Database FlashSnap のストレージの準備
- データベーススナップショットの作成について
- FlashSnap コマンド
- Oracle リカバリのガイドライン
- Database Storage Checkpoint のコマンド
- 第 IX 部 参照先
VxFS I/O チューニングパラメータについて
VxFS I/O チューニングパラメータは次のとおりです。
読み取り要求サイズ。 ファイルシステムでは、このパラメータと read_nstream 値を組み合わせて、先読みするデータの量を決定します。 デフォルト値は 64 K です。 | |
書き込み要求サイズ。ファイルシステムでは、このパラメータと write_nstream 値を組み合わせて、書き込み I/O 要求のフラッシュを実行するサイズを決定します。 デフォルト値は 64 K です。 | |
read_pref_io の並列に読み取り可能な数。 ファイルシステムでは、read_pref_io で read_nstream を乗算した積から先読みサイズを決定します。 read_nstream のデフォルト値は 1 です。 | |
write_pref_io の並列に書き込み可能な数。 ファイルシステムでは、この値と write_pref_io で write_nstream を乗算した積から書き込み時のフラッシュバックの時期を決定します。 write_nstream のデフォルト値は 1 です。 | |
VxFS では、ファイルの i ノードに、可変サイズの直接エクステントを最大 10 個まで格納できます。 これらのエクステントをすべて使ってしまうと、ファイルは固定サイズの間接エクステントを使用する必要があります。 サイズは、ファイルが初めて間接エクステントを使用するときに設定されます。 間接エクステントのデフォルト値は 8 K です。 間接エクステントサイズのエクステントを領域上に確保できない場合、ファイルシステムは、書き込みに失敗する可能性があるため、大容量間接エクステントを使うことなく、ENOSPC を戻します。 大容量ファイルを数多く処理するファイルシステムでは、8 K の間接エクステントは小さすぎます。 間接エクステントを必要とする大容量ファイルは、少数の大容量エクステントの代わりに多数の小容量エクステントを使う方が理想的です。 このパラメータを使うことにより、デフォルトの間接エクステントサイズが増えるため、少数の大容量間接エクステントを使ったファイルを構成できます。 このチューニングを使う場合は注意が必要です。 default_indir_size に過大な容量を指定すると、ファイルに間接エクステントの領域を確保できず、書き込みに失敗します。 通常は、ファイルシステム上のファイルが少数で大容量になるほど、default_indir_size パラメータにも大きい値を設定します。 このパラメータの値には、通常、read_pref_io パラメータの乗数値を指定します。 このチューニングは、バージョン 4 のディスクレイアウトには適用されません。 | |
ファイル I/O 要求が discovered_direct_iosz の値を超えている場合は、ディスカバードダイレクト I/O として処理します。ディスカバードダイレクト I/O は、ダイレクト I/O と同様に非バッファ I/O として処理されますが、ファイルの拡張またはブロックの領域確保時には、i ノードに対する同期的なコミットを必要としません。 大容量 I/O 要求では、ディスク I/O に比べて、ページキャッシュへのデータのコピーに要する CPU 時間が増えるばかりか、I/O データをバッファリングするメモリ領域が大きくなります。これらの I/O 要求には、ディスカバードダイレクト I/O を使うと、通常の I/O より効率よく処理できます。このパラメータのデフォルト値は 256 K です。 | |
デフォルトの初期エクステントサイズを変更します。VxFS では、新しいファイルの 1 回目の書き込みを基に、ファイルに割り当てる最初のエクステントサイズを決定します。 通常、最初のエクステントは 1 回目の書き込みサイズよりも大きい最小二乗値に設定されます。 また、2 乗値が 8 K 未満であれば、最初のエクステント領域を 8 K に設定します。 最初のエクステント割り当て後、ファイルシステムは、引き続き同じファイルにエクステントを割り当てるたびにエクステントサイズを増やします(max_seqio_extent_size を参照)。 アプリケーションの多くでは、始め、8 KB 以下のバッファサイズを割り当ててファイルへの書き込みを実行するため、エクステントサイズの増加は、最初のエクステントを 2 倍にすることから始まります。initial_extent_size はデフォルトの初期エクステントサイズを大きい値に変更できるため、最小二乗値使用のポリシーはより大きい値から始まり、ファイルの初期状態から複数の小容量エクステントを割り当てることを回避します。 このパラメータは、平均的に大容量ファイルを処理するファイルシステムでのみ指定します。 結果として、このようなファイルシステムでは、ファイルごとのエクステント数が減り、断片化の発生を防ぐことができます。initial_extent_size は、ファイルシステムブロック単位で計算されます。 | |
ファイルシステムで発行するダイレクト I/O 要求の最大サイズ。 より大きいサイズの I/O 要求を受け取った場合、max_direct_iosz のサイズのチャンクに分割されます。 このパラメータに、I/O 要求へ一度に割り当てるメモリのサイズを指定します。全メモリの 20% を超える値は指定できません。 | |
1 つのファイルあたりに生成されるディスクキューの最大値を制限します。 ファイルシステムがファイルのデータをフラッシュするときに、フラッシュされるページ数が max_diskq を超えた場合、フラッシュ中のデータ量が減少するまでプロセスはブロックされます。 実際のディスクキューは制限しませんが、フラッシュ処理によってシステムが応答しなくなることを防ぎます。 デフォルト値は 1MB です。 | |
エクステントの最大値を増減します。ファイルシステムでは、ファイルへの順次書き込みに使うデフォルトの割り当てポリシーに準じるとき、ファイルへの 1 回目の書き込みに十分な領域が確保されている初期エクステントを割り当てます。 追加のエクステントの領域確保には、確保する領域が規則的に増大するため(アルゴリズムでは新しいエクステントごとにファイルサイズを 2 倍にします)、各エクステントに対しより多くのデータ書き込みが可能になります。 これにより、順次書き込みの継続を見込んでエクステントの総数を削減できます。 ファイルへの書き込み終了時に未使用領域を他のファイルに解放します。 この割り当てにより通常、エクステントサイズの増加は 2048 ブロックで止まり、1 つのファイルが未使用領域を不必要に確保しないようにします。max_seqio_extent_size はファイルシステムブロックの単位で測定されます。 | |
Quick I/O ファイルのキャッシュを有効または無効にします。 デフォルトの動作では、キャッシュは無効になります。 キャッシュを有効にするには、qio_cache_enable を 1 に設定します。大容量メモリを備えたシステムでも、データベースがすべてのメモリをキャッシュとして常に使えるとはかぎりません。 ファイルシステムのキャッシュをセカンドレベルのキャッシュとして有効にすることにより、パフォーマンスが向上する可能性があります。 たとえば、データベースでテーブル内順次スキャンを実行する場合、ファイルシステムのキャッシュを有効にすることで、ファイルシステムはファイルの積極的な先読みが可能になり、その結果、検索速度が上がることが考えられます。 | |
警告: write_throttle パラメータは、コンピュータシステムに大量のメモリが実装されているものの、ストレージデバイスは低速であるという特殊な状況において有効です。 この設定では、fsync() などの同期操作の完了に時間がかかりすぎて、システムがハングアップしているように見えることがあります。 これが発生する理由は、ファイルシステムがシステムパフォーマンスを低下させることなくディスクへ非同期にフラッシュする以上の速度で、ダーティページ(メモリのみの更新)を作成するためです。 write_throttle の値を低くすると、ディスクにフラッシュされるまでにファイルシステムによって生成されるファイル単位のダーティページ数が制限されます。 ファイルのダーティページ数が write_throttle しきい値に達すると、ファイルシステムは、空き領域の有無にかかわらず、ディスクへのフラッシュを開始します。 write_throttle のデフォルト値では、通常、多数のダーティページが生成されますが、高速なユーザー書き込みは維持されます。 ストレージデバイスの速度によっては、write_throttle を低くすると、ユーザー書き込みのパフォーマンスは低下する可能性がありますが、ダーティページの数が制限されるため、同期化操作は格段に短い時間で処理できるようになります。 write_throttle 値を低く設定することによって書き込み要求が遅延することがあるため(たとえば、write_throttle 値を低く設定することにより、max_diskq の値までファイルディスクキューの数が増える可能性があり、そのため、ディスクキューが少なくなるまで書き込み要求の遅延が発生することがある)、システムに大容量の物理メモリと低速ストレージデバイスの双方が搭載されていないかぎり、write_throttle の値を変更しないことをお勧めします。 |
ファイルシステムを VxVM とともに使う場合、ボリュームジオメトリを基にした VxFS I/O チューニングパラメータはデフォルトを指定することをお勧めします。
ファイルシステムを VxVM 以外のハードウェアディスクアレイや論理ボリューム管理ツールと連動させる場合、論理ディスクジオメトリからパラメータを調整しようとします。 ストライピングや RAID 5 の場合、通常 read_pref_io にストライプユニットのサイズを、read_nstream にストライプの並列アクセス数を指定します。 ストライプアレイの場合は、write_pref_io と write_nstream に同数を、RAID 5 アレイの場合は、write_pref_io に全ストライプサイズ(パリティストライプを除いたすべてのストライプユニットの合計)を、write_nstream に 1 をそれぞれ指定します。
ディスク I/O を効率的に処理するアプリケーションについては、read_nstream で read_pref_io を乗算した積から読み取り要求を発行する必要があります。 通常、read_nstream で read_pref_io を乗算する場合は、どの累数を使ってもパフォーマンスには十分なサイズとなります。 書き込みの場合にも、この方法で write_pref_io と write_nstream のパラメータを指定することにより、パフォーマンスを向上させることができます。 ファイルシステムのチューニングには、実際の作業負荷を課してチューニングパラメータを指定することをお勧めします。
大容量ファイルに対して順次 I/O を実行するアプリケーションでは、discovered_direct_iosz を超えるサイズの I/O 要求を実行します。 これにより、I/O 要求がディスカバードダイレクト I/O 要求として認識され、ダイレクト I/O と同様に非バッファ I/O として処理されますが、ファイルの拡張時に i ノードの更新に対する同期化処理を実行しません。 キャッシュを超えるサイズのファイルの場合、非バッファ I/O の処理を指定することにより、有益なデータをキャッシュから溢れさせることなく、CPU オーバーヘッドを軽減できます。