优化服务器内存用量上限

如果数据库实例分配的内存过低或过高,可能会遇到性能问题。实例有时可能会遇到内存不足 (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. 前往 Active Assist。另请参阅通过 Recommendation 查找和应用建议。

    前往 Active Assist

  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_LOW 和 SQLSERVER_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 便可为您管理实例内存限制。

后续步骤