使用 System Insights 提高系统性能

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

查看 System Insights 信息中心

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

  1. 在 Google Cloud Console 中,转到 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

后续步骤