テーブルのオープン キャッシュ サイズを増やす

Cloud SQL の高オープンテーブル数 Recommender は、同時に開いているテーブルの数が table_open_cache の値と等しいインスタンスの検出に役立ちます。そうして、パフォーマンス向上のために、そのようなインスタンスを最適化する方法に関する推奨事項を提供します。

このページでは、高オープン テーブル数 Recommender の仕組みと使用方法について説明します。

仕組み

MySQL はマルチスレッドであり、クライアントは複数のスレッドから同じテーブルに対して同時にクエリを発行できます。したがって、MySQL ではセッションごとに個別にテーブルを開くことができます。同時に開くテーブルの数は、table_open_cache によって管理されます。キャッシュがいっぱいで追加のテーブルが開かれると、MySQL は最も長い間使用されていないテーブルを閉じます。キャッシュ内のすべてのテーブルが現在使用されている場合、MySQL はキャッシュを一時的に拡張し、テーブルを使用しなくなったらすぐに閉じます。

オープン テーブルの数が table_open_cache の値を超えると、高負荷時、データベースのパフォーマンスに悪影響を与える可能性があります。これは、作成されるスレッドが増え、テーブル ハンドラがテーブルを開閉する頻度が高くなるためです。

Cloud SQL の高オープンテーブル数 Recommender は、Cloud SQL MySQL インスタンスで開かれている日単位のテーブル数の指標を分析します。直近の 24 時間に、開かれたテーブルの数が 2 秒ごとに 1 以上増加し、オープンテーブルの数が table_open_cache 値以上の場合、Recommender は table_open_cache フラグの調整をすすめます。

料金

Cloud SQL テーブル数過多の Recommender は、標準の Recommender の料金ティアに含まれています。

始める前に

推奨事項と分析情報を表示するには、事前に次の手順を行う必要があります。

  • 分析情報と推奨事項を表示、操作する権限を取得するには、必要なロールが必要です。
    タスク ロール
    推奨事項を表示する recommender.cloudsqlViewer または cloudsql.viewer のいずれかのロール。
    推奨事項を適用する recommender.cloudsqlAdmincloudsql.editorcloudsql.admin のいずれかのロール。
    ロールの詳細については、ロールについてIAM 権限の付与をご覧ください。
  • Recommender API を有効にします。

    API を有効にする

インスタンスのパフォーマンスに関する推奨事項を一覧表示する

インスタンスのパフォーマンスに関する推奨事項を一覧表示するには、Google Cloud コンソール、gcloud CLI、または Recommender API を使用します。

インスタンスのパフォーマンス改善に関する推奨事項は、パフォーマンスしきい値の制限に近づいているインスタンスがある場合にのみ表示されます。

コンソール

Google Cloud コンソールを使用してインスタンスのパフォーマンスに関する推奨事項を一覧表示するには、次の操作を行います。

  1. Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [Increase table open cache recommendations] バナーで [View all] をクリックします。

または、次の方法を行います。

  1. [おすすめハブ] に移動します。おすすめハブのスタートガイドもご覧ください。

    おすすめハブに移動

  2. Cloud SQL インスタンスのパフォーマンスを向上させる」カードで、[すべて表示] をクリックします。

  3. [開いているテーブルのキャッシュを増やす] の推奨事項があるインスタンスを選択します。

gcloud CLI

gcloud CLI を使用してインスタンスのパフォーマンス改善に関する推奨事項を一覧表示するには、次のように gcloud recommender recommendations list コマンドを実行します。

gcloud recommender recommendations list \
--project=PROJECT_ID \
--location=LOCATION \
--recommender=google.cloudsql.instance.PerformanceRecommender \
--filter=recommenderSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

API

Recommendations API を使用してインスタンスのパフォーマンス改善に関する推奨事項を一覧表示するには、次のように recommendations.list メソッドを呼び出します。

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

Recommender は、オープンテーブル数が多いインスタンスを検出すると、パフォーマンスに関する他の推奨事項とともにテーブルに一覧表示します。各行には、インスタンス ID、簡単な推奨事項、データベース エンジン、ロケーション、最終更新日が表示されます。

分析情報と詳細な推奨事項を表示する

開いているテーブル数が多いインスタンスに関する分析情報と詳細な推奨事項を表示するには、Google Cloud コンソール、gcloud CLI、または Recommender API を使用します。

コンソール

Google Cloud コンソールを使用して、パフォーマンスしきい値に近いインスタンスの分析情報と詳細な推奨事項を表示するには、インスタンスのリストにある推奨事項リンクをクリックします。

gcloud CLI

gcloud CLI を使用して、パフォーマンスしきい値に近いインスタンスの分析情報と詳細な推奨事項を表示するには、次のように gcloud recommender insights list コマンドを実行します。

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

API

Recommendations API を使用して、開いているテーブル数が多いインスタンスに関する分析情報と詳細な推奨事項を表示するには、次のように insights.list メソッドを呼び出します。

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: us-central1 などのリージョン。

次の表では、パフォーマンス改善に役立つ Cloud SQL の上位テーブル Recommender が生成する分析情報と推奨事項を示します。サブタイプは、gcloud CLI と API の結果に表示されます。

分析情報 推奨事項
開いているテーブルの数は、table_open_cache フラグの値と同じです。
サブタイプ: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
開いているテーブルの数を減らすことで Cloud SQL インスタンスのパフォーマンスを向上させることができます。
サブタイプ: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

推奨事項を適用する

推奨事項を慎重に評価し、以下のいずれかを行います。

  • インスタンスを調べるには、[インスタンスを表示] をクリックします。インスタンスのパフォーマンスの最適化を確認して、推奨事項に従います。

  • 推奨事項を閉じて強調を解除し、グレー表示するには、[閉じる] をクリックします。

  • 推奨事項を適用または拒否せずにパネルを閉じるには、[キャンセル] をクリックします。

インスタンスのパフォーマンスを最適化する

インスタンスのパフォーマンスを最適化するには、次のいずれかを行います。

  1. 推奨事項が表示されなくなるまで、table_open_cache の値を 500 ずつ増やします。推奨事項は毎日更新されるため、table_open_cache の値を増やした後、24 時間経過してから再び確認してください。

  2. open_tables の値が table_open_cache より大きい場合は、table_open_cache の値を open_tables の値に増やします。

    データベース フラグの更新方法については、データベース フラグを構成するをご覧ください。

次のステップ