將伺服器記憶體用量上限最佳化

如果資料庫執行個體的記憶體分配量過低或過高,可能會發生效能問題。執行個體有時可能會遇到記憶體不足 (OOM) 問題。

max server memory (mb) 標記會限制 Cloud SQL 可為其內部集區分配的記憶體量。您可以手動設定這個旗標的值,也可以省略這個旗標,讓 Cloud SQL 自動管理記憶體限制。

  • 如果您未啟用旗標,Cloud SQL 會根據執行個體的 RAM 大小,自動管理執行個體的記憶體限制。

  • 如果您啟用旗標並手動設定值,之後再調整執行個體大小,Cloud SQL 會停用該旗標、覆寫先前提供的值,並自動管理執行個體的記憶體限制,直到您提供新的 max server memory (mb) 值為止。

標記值不足可能會導致效能問題,而過度配置則可能導致不穩定、效能降低和資料庫異常終止。

我們強烈建議使用者讓 Cloud SQL 管理執行個體的記憶體限制。

詳情請參閱「SQL Server 設定」。

定價

Maximum server memory 推薦工具屬於 標準 推薦工具定價等級

事前準備

啟用 Recommender API

必要角色和權限

如要取得查看洞察資料和最佳化建議的權限,請確認您具備必要的 Identity and Access Management (IAM) 角色

工作 角色
查看建議 recommender.cloudsqlViewercloudsql.admin
套用建議 cloudsql.editorcloudsql.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

查看洞察資料和詳細最佳化建議

如要查看洞察資料和詳細建議,請按照下列步驟操作:

主控台

執行下列其中一個步驟:

  • 在「成效最佳化建議」頁面中,按一下「成效最佳化建議」資訊卡,然後點選「建立索引或重新設定彙整設定」。這時會顯示建議面板,其中包含執行個體的洞察資料和詳細建議。

  • 在「Instances」頁面中,按一下「Create indexes or reconfigure join settings」。執行個體清單只會顯示適用於建議的執行個體。

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

套用最佳化建議

主控台

如要實作這項建議,請按照下列步驟操作:

  • 找出有「伺服器記憶體設定錯誤」建議的執行個體。按一下推薦內容即可開啟。

  • 在推薦視窗中,按一下「編輯執行個體」

  • 在「旗標和參數」專區中,找出並刪除「伺服器記憶體用量上限 (MB)」旗標。移除旗標後,Cloud SQL 會為您管理執行個體記憶體限制。

後續步驟