バッファ・キャッシュの構造

6 章 パフォーマンスのモニタリングとチューニング

バッファ・キャッシュの構造

Sybase IQ では、システム上の CPU の数に応じて、バッファ・キャッシュの キャッシュ・パーティションの数が自動的に計算されます。マルチ CPU 構成 で ロ ー ド ま た は ク エ リ の パ フ ォ ー マ ン ス が 予 想 よ り 悪 い 場 合 は、 CACHE_PARTITIONS データベース・オプションの値を変更するとパフォーマ ンスが向上することがあります。詳細については、『Sybase IQ リファレンス・ マニュアル』のCACHE_PARTITIONS オプション」を参照してください。

バッファは、キャッシュの LRU (Least Recently Used) 側の終端に近づくと、 ウォッシュ・マーカを越えます。Sybase IQ は最も古いページ ( ウォッシュ・ マーカを越えたページ ) をディスクに書き出して、そのページが占有していた キャッシュ領域を再利用できるようにします。スイーパ・スレッドと呼ばれる Sybase IQ 処理スレッドのチームが、最も古いバッファを一掃し(書き出し) ます。

データのページをキャッシュに読み込む必要がある場合、Sybase IQ LRU バッファを取り込みます。バッファがまだ「ダーティな」( 変更された ) 状態 の場合は、先にバッファをディスクに書き込む必要があります。モニタ -cacheレポートの [Gdirty] カラムは、LRU バッファをダーティな状態で取り込んだた めに、Sybase IQ がそのバッファを使用する前に書き出す必要があった回数を 示します。

通常、Sybase IQ では [Gdirty] の値が 0 に維持されます。この値が 0 より大 きい状態が長時間続く場合は、スイーパ・スレッドの数とウォッシュ・マー カを制御するデータベース・オプションを調整する必要があります。詳細 については、『Sybase IQ リファレンス・マニュアル』の「第 2 章 データベー ス・オプション」SWEEPER_THREADS_PERCENT オプション」または WASH_AREA_BUFFERS_PERCENT オプション」を参照してください。

バッファ・マネージャのスラッシングの回避

オペレーティング・システムによるページングは、使用可能な空きメモリを超え るバッファを必要とするクエリに影響します。特に、バッファ・キャッシュにさ らに多くの物理メモリを割り付けようとすると、ページングが少々必要です。た だし、物理メモリをバッファ・キャッシュに過度に割り付けると、オペレーティ ング・システムによるページングの発生頻度が高くなり、システム全体がスラッ シングする原因となることがあります。逆に、バッファ・キャッシュに十分なメ モリを割り付けないと、Sybase IQ がスラッシングしてしまいます。

オペレーティング・システムがディスクにページ・アウトする最適バッファの 量を減らした場合、バッファ・マネージャはこれらのバッファをメモリに戻す ためにディスクから余分に読み込みを行わなければならないため、バッファ・ マネージャのスラッシングが発生します。Sybase IQ では、ディスクにフラッ シュするための最適なバッファを把握しているため、ページ・アウトの全体の 数を減らすことによって、このようなオペレーティング・システムによる干渉 を回避できます。

パフォーマンス&チューニング・ガイド

169

Page 185
Image 185
Sybase 12.7 manual バッファ・キャッシュの構造, バッファ・マネージャのスラッシングの回避, パフォーマンス&チューニング・ガイド