使用 System Insights 提高系统性能

本页面介绍了如何使用 Cloud SQL System Insights 信息中心。System Insights 信息中心会显示实例所用资源的指标,并可帮助您检测和分析系统性能问题。

您可以使用 Gemini in Databases 协助功能来帮助您观察 Cloud SQL for MySQL 资源并排查问题。如需了解详情,请参阅在 Gemini 的协助下进行观察并排查问题

查看 System Insights 信息中心

如需查看 System Insights 信息中心,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击一个实例的名称。
  3. 从左侧的 SQL 导航面板中选择系统数据分析标签页。

System Insights 信息中心随即会打开。

显示指标和事件时间轴的信息中心图片。

System Insights 信息中心会显示以下信息:

  1. 实例详情

  2. 事件时间轴:按时间顺序显示系统事件。此信息可帮助您评估系统事件对实例的健康状况和性能的影响。

  3. 摘要卡:通过显示 CPU 利用率、磁盘利用率和日志错误指标的最新聚合值,提供实例健康状况和性能的概览。

  4. 指标图表:显示操作系统和数据库指标的相关信息,可帮助您深入了解多个问题,例如吞吐量、延迟时间和费用。

信息中心提供以下简要选项:

  • 如需创建自定义信息中心,请点击自定义信息中心
  • 如需使信息中心保持最新,请启用 自动刷新选项。启用自动刷新后,信息中心数据会每分钟更新。

  • 时间选择器显示默认选择的 1 day。要更改时间段,请选择其他预定义时间段之一,或点击自定义并定义开始时间和结束时间。可以获得过去 30 天的数据。

  • 如需创建指向信息中心的绝对链接,请点击复制链接按钮。您可以与具有相同权限的其他 Cloud SQL 用户共享此链接。

摘要卡

下表介绍了 System Insights 信息中心顶部显示的摘要卡。这些卡片提供了实例在选定时间段内的健康状况和性能的简要概览。

摘要卡说明
CPU 利用率 - P50 P50 CPU 利用率值。
CPU 利用率 - P99 P99 CPU 利用率值。
磁盘利用率 最新的磁盘利用率值。
日志错误数 记录的错误数。

指标图表

每个图表卡片上的工具栏都提供以下标准选项集:

  • 如需查看所选时间段内特定时刻的指标值,请将光标移到图表上。

  • 要以全屏模式查看图表,请点击 。要退出全屏模式,请点击 Esc

  • 要缩放图表,请点击图表,然后沿 x 轴水平拖动或沿 y 轴垂直拖动。要还原缩放操作,请点击 。缩放操作会同时应用于信息中心上的所有图表。

  • 如需查看其他选项,请点击 。大多数图表都提供以下选项:

    • 下载 PNG 图片

    • 在 Metrics Explorer 中查看。在 Metrics Explorer 中查看指标。 选择 Cloud SQL 数据库资源类型后,您可以在 Metrics Explorer 中查看其他 Cloud SQL 指标。

下表介绍了 Cloud SQL System Insights 信息中心默认显示的 Cloud SQL 指标。

指标名称和类型说明
查询延迟时间
dbinsights.googleapis.com/
aggregate/latencies

按 P99、P95 和 P50 细分的每个用户和数据库的汇总查询延迟时间分布情况。

仅适用于启用了 查询数据分析的实例。

每个数据库/用户/客户端地址的数据库负载
dbinsights.googleapis.com/
aggregate/execution_time

每个数据库、用户或客户端地址的累计查询执行时间。此值等于执行查询所涉及的所有进程的 CPU 时间、I/O 等待时间、锁定等待时间、进程上下文切换时间和调度时间的总和。

仅适用于启用了 查询数据分析的实例。

CPU 利用率
cloudsql.googleapis.com/
database/cpu/utilization

当前 CPU 利用率,以当前正在使用的预留 CPU 的百分比表示。

MySQL 连接数
cloudsql.googleapis.com/
database/network/connections

数据库实例占用的连接数。

入站/出站字节数

cloudsql.googleapis.com/
database/network/received_bytes_count


cloudsql.googleapis.com/
database/network/sent_bytes_count

分别以进出实例的入站流量字节数(接收的字节数)和出站流量字节数(发送的字节数)表示的网络流量。

内存组件

cloudsql.googleapis.com/
database/memory/components

数据库可用的内存组件,包括用量、缓存和可用内存。每个内存组件的值计算为数据库可用总内存的百分比。
MySQL 查询数
cloudsql.googleapis.com/
database/mysql/queries
服务器执行的语句数量。这包括在存储程序中执行的语句,例如存储过程和函数。
MySQL 问题数
cloudsql.googleapis.com/
database/mysql/questions
服务器执行的语句数量。这仅包括客户端发送到服务器的语句,不包括在存储程序中执行的语句。
MySQL 网络流量
cloudsql.googleapis.com/
database/mysql/received_bytes_count

cloudsql.googleapis.com/
database/mysql/sent_bytes_count
从客户端接收和发送的字节数。
InnoDB 页面

  • InnoDB 脏页数
    cloudsql.googleapis.com/
    database/mysql/innodb_buffer_pool_pages_dirty
  • InnoDB 可用页数
    cloudsql.googleapis.com/
    database/mysql/innodb_buffer_pool_pages_free
  • InnoDB 总页数
    cloudsql.googleapis.com/
    database/mysql/innodb_buffer_pool_pages_total

InnoDB 缓冲池中的脏页数、可用页数和总页数。InnoDB 缓冲池中的脏页是在内存中修改但未写回到磁盘的页。InnoDB 缓冲池中的可用页是不包含任何数据且未被使用的页。
InnoDB fsync 调用数

cloudsql.googleapis.com/
database/mysql/innodb_data_fsyncs

InnoDB fsync 操作的数量。
InnoDB 日志 fsync 调用数

cloudsql.googleapis.com/
database/mysql/innodb_os_log_fsyncs

对 InnoDB 重做日志文件执行的 fsync 操作数量。
读取/写入的 InnoDB 页面数

cloudsql.googleapis.com/
database/mysql/innodb_pages_read


cloudsql.googleapis.com/
database/mysql/innodb_pages_written
读取和写入的 InnoDB 页面数。
MySQL 表打开缓存

cloudsql.googleapis.com/
database/mysql/open_tables


cloudsql.googleapis.com/
database/mysql/opened_table_count
open_tables 是当前打开的表的数量。
opened_table_count 是自上一次采样以来数据库已打开的表的数量。
如果 opened_table_count 的值一直很高,我们建议您增加 table_open_cache 的值。
MySQL 表定义缓存

cloudsql.googleapis.com/database/
mysql/open_table_definitions


cloudsql.googleapis.com/database/
mysql/opened_table_definitions_count
open_table_definitions 是当前打开的表定义数。opened_table_definitions_count 是自上一次采样以来数据库打开表定义的次数。如果 opened_table_definitions_count 的值一直很高,我们建议您增加 table_definition_cache 的值。
InnoDB 数据字典的内存用量

cloudsql.googleapis.com/
database/mysql/innodb/dictionary_memory

InnoDB 数据字典缓存的内存用量。InnoDB 拥有自己的缓存,用于存储数据库对象(例如表、列、索引和外键)的相关信息。table_definition_cache 设置此缓存中的表数量的软性限制。但是,具有外键关系的表会保留在缓存中,直到数据库关闭或重启。如果您的实例包含许多具有外键关系的表,此缓存会占用大量内存。
磁盘存储空间(按类型划分)
cloudsql.googleapis.com/
database/disk/bytes_used_by_data_type
按数据类型(如 databinlogtmp_data)细分的实例磁盘用量。 此指标可帮助您了解存储费用。如需详细了解按存储使用量收取的费用,请参阅存储和网络价格

时间点恢复 (PITR) 使用二进制日志。Cloud SQL 会定期生成新日志,这些日志会占用存储空间。Cloud SQL 会自动删除二进制日志及其关联的自动备份。这通常发生在满足为 transactionLogRetentionDays 设置的保留值之后。 transactionLogRetentionDays 是 Cloud SQL 保留事务日志的天数。其值范围为 17

为避免在使用 PITR 时发生意外的存储问题,我们建议您启用存储空间自动扩容

磁盘读取/写入操作次数

cloudsql.googleapis.com/
database/disk/read_ops_count


cloudsql.googleapis.com/
database/disk/write_ops_count
read_ops_count 表示磁盘读取 I/O 操作的增量计数。 您可以使用此指标来了解实例的大小是否适合您的环境。如果需要,您可以改用更大的机器类型,以通过缓存处理更多请求,并减少延迟。

write_ops_count 表示磁盘写入 I/O 操作的增量计数。Cloud SQL 实例(禁止副本)大约每秒写入系统表一次。
Cloud Logging

logging.googleapis.com/
log_entry_count
显示错误和警告的日志条目总数。

如需了解详情,请参阅 Cloud SQL 指标

事件时间轴

信息中心提供了以下事件的详细信息:

事件名称说明操作类型
Instance restart 重启 Cloud SQL 实例 RESTART
Instance failover 启动高可用性 (HA) 主实例到备用实例的手动故障转移,该实例成为主实例。 FAILOVER
Instance maintenance 表示实例当前正在维护中。 维护通常会导致实例无法使用的时长为 1 到 3 分钟。 MAINTENANCE
Instance backup 执行实例备份。 BACKUP_VOLUME
Instance update 更新 Cloud SQL 实例的设置。 UPDATE
Promote replica 升级 Cloud SQL 副本实例。 PROMOTE_REPLICA
Start replica 启动 Cloud SQL 读取副本实例上的复制。 START_REPLICA
Stop replica 停止 Cloud SQL 读取副本实例上的复制。 STOP_REPLICA
Recreate replica 为 Cloud SQL 副本实例重新创建资源。 RECREATE_REPLICA
Create replica 创建 Cloud SQL 副本实例。 CREATE_REPLICA
Data import 将数据导入 Cloud SQL 实例。 IMPORT
Instance export 将数据从 Cloud SQL 实例导出到 Cloud Storage 存储桶。 EXPORT
Restore backup 恢复 Cloud SQL 实例的备份。此操作可能会导致实例重启。 RESTORE_VOLUME

后续步骤