サーバーの最大メモリ使用量を最適化する

データベース インスタンスの実行時、メモリの割り当てが少なすぎたり多すぎたりすると、パフォーマンスの問題が発生する可能性があります。インスタンスでメモリ不足(OOM)の問題が発生することがあります。

max server memory (mb) フラグは、Cloud SQL が内部プールに割り当てることができるメモリ量を制限します。このフラグの値を手動で設定することも、フラグを省略して Cloud SQL にメモリ上限を自動的に管理させることもできます。

  • フラグを有効にしない場合は、Cloud SQL がインスタンスの RAM のサイズに基づいてインスタンスのメモリ上限を自動的に管理します。

  • フラグを有効にして手動で値を設定した場合に、後でインスタンスのサイズを変更すると、Cloud SQL はフラグを無効にし、以前に指定された値をオーバーライドして、新しい max server memory (mb) 値が指定されるまでインスタンスのメモリ上限を自動的に管理します。

フラグの値が十分でないと、パフォーマンスの問題が発生する可能性があります。一方、割り当てが過剰な場合は、不安定になったり、パフォーマンスの低下やデータベースのクラッシュが発生したりする可能性があります。

インスタンスのメモリ上限は Cloud SQL に管理させることを強くおすすめします。

詳細については、SQL Server の設定をご覧ください。

料金

最大サーバーメモリの Recommender は、標準の Recommender の料金ティアに含まれています。

始める前に

Recommender API を有効にします

必要なロールと権限

分析情報と推奨事項を表示して操作するための権限を取得するには、必要な Identity and Access Management(IAM)ロールが付与されていることを確認してください。

タスク ロール
推奨事項を表示する recommender.cloudsqlViewer または cloudsql.admin
推奨事項を適用する cloudsql.editor または cloudsql.admin
IAM ロールの詳細については、IAM の基本ロールと事前定義ロールのリファレンスプロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

推奨事項を一覧取得する

推奨事項を一覧取得する手順は次のとおりです。

コンソール

インスタンスのパフォーマンスに関する推奨事項を一覧表示する手順は次のとおりです。

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

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

  1. [問題を調査し、推奨事項に従い対策を行うことで、インスタンスの健全性を向上させます] バナーで、[詳細を表示] をクリックします。

別の手順は次のとおりです。

  1. [おすすめハブ] に移動します。おすすめハブで推奨事項を探して適用するもご覧ください。

    おすすめハブに移動

  2. [すべての推奨事項] カードで [パフォーマンス] をクリックします。

gcloud

次のように gcloud recommender recommendations list コマンドを実行します。

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

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

  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスが配置されているリージョン(たとえば us-central1

API

次のように recommendations.list メソッドを呼び出します。

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations

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

  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスが配置されているリージョン(たとえば us-central1

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

分析情報と詳細な推奨事項を表示する手順は次のとおりです。

コンソール

次のいずれかを行います。

  • [パフォーマンスに関する推奨事項] ページで、[パフォーマンスに関する推奨事項] カードをクリックし、[インデックスの作成または結合設定の再構成] をクリックします。推奨事項のパネルが表示されます。このパネルには、インスタンスの分析情報と詳細な推奨事項が含まれています。

  • [インスタンス] ページで、[インデックスの作成または結合設定の再構成] をクリックします。インスタンスのリストには、推奨事項が適用されるインスタンスのみが表示されます。

gcloud

次のように gcloud recommender insights list コマンドを実行します。


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

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

  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスが配置されているリージョン(たとえば us-central1
  • INSIGHT_SUBTYPE: 割り当てられたメモリが少なすぎるか多すぎるかを検証するために使用されるサブタイプ。有効な値は SQLSERVER_MAX_SERVER_MEMORY_TOO_LOWSQLSERVER_MAX_SERVER_MEMORY_TOO_HIGH などです。

API

次のように insights.list メソッドを呼び出します。


GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceInsight/insights

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

  • PROJECT_ID: プロジェクト ID
  • LOCATION: インスタンスが配置されているリージョン(たとえば us-central1

推奨事項を適用する

コンソール

この推奨事項を実装する手順は次のとおりです。

  • サーバーのメモリが正しく構成されていません」という推奨事項があるインスタンスを見つけます。推奨事項をクリックして開きます。

  • 推奨事項ウィンドウで、[インスタンスを編集] をクリックします。

  • [フラグとパラメータ] セクションで、[max server memory (mb)] フラグを探して削除します。このフラグを削除すると、Cloud SQL がインスタンスのメモリ上限を管理します。

次のステップ