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 价格层级。
准备工作
在查看建议和数据分析之前,请执行以下操作:
- 如需获得查看和使用数据分析和建议的权限,请确保您拥有所需的角色。
Tasks 角色 查看建议 以下角色之一: recommender.cloudsqlViewer
或cloudsql.viewer
。采纳建议 以下角色之一: recommender.cloudsqlAdmin
、cloudsql.editor
或cloudsql.admin
。 -
Enable the Recommender API.
列出实例性能建议
您可以使用 Google Cloud 控制台、gcloud CLI
或 Recommender API 列出实例性能建议。
仅当您的实例接近性能阈值限制时,系统才会显示改进实例性能建议。
控制台
如需使用 Google Cloud 控制台列出有关实例性能的建议,请按照以下步骤操作:
转到 Cloud SQL 实例页面。
点击“增加表打开缓存”建议横幅上的查看全部。
或者,请按以下步骤操作:
转到 Recommendation Hub。另请参阅 Recommendation Hub 使用入门。
在 Improve Cloud SQL Instance Performance(改进 Cloud SQL 实例性能)卡片中,点击查看全部。
选择具有 Increase table open cache(增加表打开缓存)建议的实例。
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
:您的项目 IDLOCATION
:区域,例如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
|
采纳建议
请仔细评估建议,并执行以下任何操作:
如需检查实例,请点击查看实例。请参阅优化实例的性能并遵循建议。
如需忽略建议,使其被取消突出显示并呈灰显状态,请点击忽略。
如需关闭面板而不应用或忽略建议,请点击取消。
优化实例的性能
如需优化实例的性能,请执行以下任意操作:
将
table_open_cache
的值增加 500,直到建议消失。此建议每天更新一次,因此在增加table_open_cache
的值后,请等待 24 小时,然后再次检查建议。如果
open_tables
的值大于table_open_cache
,则将table_open_cache
的值增加到open_tables
的值。如需了解如何更新数据库标志,请参阅配置数据库标志。