Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベース・パフォーマンスのモニタリングと改善 » データベース・パフォーマンスの改善 » パフォーマンス向上のためのヒント

 

動的キャッシュ・サイズ決定 (UNIX)

UNIX では、データベース・サーバはスワップ領域とメモリを使用してキャッシュ・サイズを管理します。スワップ領域はシステムワイドなリソースで、たいていの UNIX オペレーティング・システムにありますが、ないものもあります。この項では、メモリとスワップ領域の合計を「システム・リソース」と呼びます。詳細については、使用しているオペレーティング・システムのマニュアルを参照してください。

起動時に、データベースは指定した最大キャッシュ・サイズをシステム・リソースから割り付けます。この一部をメモリ (初期キャッシュ・サイズ) にロードし、残りをスワップ領域として残します。

データベース・サーバが使用するシステム・リソースの総量は、データベース・サーバが停止するまで一定です。ただし、メモリにロードされる比率は変わります。データベースサーバは、1 分ごとにキャッシュとオペレーションの統計を評価します。データベース・サーバがビジーでメモリが必要になると、キャッシュ・ページをスワップ領域からメモリに移します。システム内の他の処理がメモリを必要とした場合、データベース・サーバがキャッシュ・ページをメモリからスワップ領域に移すことがあります。

初期キャッシュ・サイズ

デフォルトでは、初期キャッシュ・サイズは使用可能なシステム・リソースに基づいたヒューリスティックを使用して割り当てられます。初期キャッシュ・サイズは、データベース・サイズの総量の 1.1 倍より常に小さくなります。

初期キャッシュ・サイズが使用可能なシステム・リソースの 4 分の 3 より大きい場合は、データベース・サーバが「メモリが不足しています。」というエラーで終了します。

初期キャッシュ・サイズは、-c オプションを使用して変更できます。-c サーバ・オプションを参照してください。

最大キャッシュ・サイズ

最大キャッシュ・サイズは、コンピュータの使用可能なシステム・リソースより小さくしてください。デフォルトでは、最大キャッシュ・サイズはコンピュータの使用可能なシステム・リソースと物理メモリ量の合計に基づいたヒューリスティックを使用して割り当てられます。キャッシュ・サイズは、明示的または暗黙的に指定された最大キャッシュ・サイズ、またはすべてのオープン・データベースとテンポラリ・ファイル合計サイズにメイン・ヒープのサイズを加えたものを超えることはありません。

使用可能なシステム・リソースより大きい最大キャッシュ・サイズを指定すると、データベース・サーバが「メモリが不足しています。」というエラーで終了します。使用可能なメモリより大きい最大キャッシュ・サイズを指定すると、データベース・サーバはパフォーマンス低下の警告を出しますが、終了はしません。

データベース・サーバはすべての最大キャッシュ・サイズをシステム・リソースから割り付け、終了まで解放しません。他のアプリケーションに領域を残しながら SQL Anywhere のパフォーマンスも低下させないように、最大キャッシュ・サイズを設定してください。デフォルトの最大キャッシュ・サイズを求める式は、このバランスを考慮に入れたヒューリスティックを使用しています。値を調整する必要があるのは、デフォルト値が使用しているシステムに適さないときのみです。

-ch サーバ・オプションを使用して最大キャッシュ・サイズを設定し、自動キャッシュ増加機能を制限できます。詳細については、-ch サーバ・オプションを参照してください。

最小キャッシュ・サイズ

-c オプションを指定した場合、最小キャッシュ・サイズは初期キャッシュ・サイズと同じです。-c オプションを指定しない場合は、UNIX 上での最小キャッシュ・サイズは 8 MB です。

-cl サーバ・オプションを使用して、最小キャッシュ・サイズを調整できます。-cl サーバ・オプションを参照してください。