使用 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 利用率 - P99 | P50 所选时间段内 P99 和 P50 CPU 利用率值。
连接数峰值 所选时间段内连接数峰值与连接数上限的比率。 如果连接数上限最近发生了更改(例如由于实例扩缩或手动更改 max_connections 设置),则连接数峰值可能会大于连接数上限。
事务 ID 利用率 所选时间段内事务 ID 的最新利用率值。
磁盘利用率 最新的磁盘利用率值。
日志错误数 记录的错误数。

指标图表

示例指标的图表卡片如下所示。
显示 Cloud SQL 指标数据示例的图表。

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

  • 要隐藏或显示图例,请点击
  • 如需查看所选时间段内特定时刻的指标值,请将光标移到图表上。

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

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

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

    • 下载 PNG 图片

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

    • 添加到自定义信息中心。为信息中心命名或选择现有自定义信息中心。使用 Cloud Monitoring 查看和修改信息中心。

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

指标类型字符串具有此前缀:cloudsql.googleapis.com/database/

这些指标的发布阶段正式版Beta 版

指标名称和类型说明
每秒新的连接数 Beta 版
postgresql/new_connection_count

每秒在 Cloud SQL for PostgreSQL 实例上创建的新连接数。Cloud SQL 会为每个数据库计算并显示此指标。

此指标适用于 PostgreSQL 14 及更高版本。

等待事件类型 Beta 版
postgresql/backends_in_wait

Cloud SQL for PostgreSQL 实例中每种等待事件类型的连接数。

等待事件数 Beta 版
postgresql/backends_in_wait

Cloud SQL for PostgreSQL 实例中的等待事件数量。信息中心会将此指标显示为“等待事件名称:等待事件类型”。

事务计数 Beta 版
postgresql/transaction_count

Cloud SQL for PostgreSQL 实例中 commitrollback 状态的事务数量。

内存组件 Beta 版
memory/components

数据库可用的内存组件。每个内存组件的值计算为数据库可用总内存的百分比。

最大复制字节延迟 Beta 版
postgresql/external_sync/max_replica_byte_lag

外部服务器 (ES) 副本上所有数据库之间的最大复制延迟(以字节为单位)。

查询延迟时间 正式版
postgresql/insights/aggregate/latencies

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

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

每个数据库/用户/客户端地址的数据库负载 正式版
postgresql/insights/aggregate/execution_time

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

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

CPU 利用率 正式版
cpu/utilization

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

磁盘存储空间(按类型)正式版
disk/bytes_used_by_data_type

按数据类型(包括 databinlogtmp_data)细分的实例磁盘用量。

此指标可帮助您了解存储费用。如需详细了解按存储使用量收取的费用,请参阅存储和网络价格

时间点恢复 (PITR) 使用预写日志 (WAL) 归档。这些日志会定期更新并使用存储空间。系统会自动删除预写日志及其关联的自动备份(通常发生在大约 7 天后)。

如果预写日志的大小导致实例出现问题,您可以增加存储空间大小,但磁盘使用率中的预写日志大小的增加可能是临时的。为避免出现意外的存储问题,Google 建议您在使用 PITR 时启用存储空间自动扩容

如需删除日志并恢复存储空间,您可以停用时间点恢复。但请注意,减少所占用的存储空间并不会缩小为实例预配的存储空间大小。

临时数据包含在存储使用量指标中。临时数据在维护期间会被移除,并且可以超出用户定义的容量限制,以避免触发“磁盘已满”事件,而用户则无需为此付费。

新创建的数据库的系统表和文件会使用大约 100 MB 的空间。

磁盘存储空间(按类型)正式版
disk/bytes_used_by_data_type

按数据类型(包括 databinlogtmp_data)细分的实例磁盘用量。

此指标可帮助您了解存储费用。如需详细了解按存储使用量收取的费用,请参阅存储和网络价格

时间点恢复使用预写式日志记录 (WAL) 归档。对于启用了时间点恢复的新 Cloud SQL 实例,或在 Cloud Storage 中存储 WAL 日志的功能可用后启用时间点恢复的现有实例,日志将不再存储在磁盘上,而是存储在与实例位于同一区域的 Cloud Storage 中。

如需查看实例的日志是否存储在 Cloud Storage 中,请检查实例的 bytes_used_by_data_type 指标。如果 archived_wal_log 数据类型的值为 0,则实例的日志存储在 Cloud Storage 中。

所有其他启用了时间点恢复的现有实例都会继续将其日志存储在磁盘上。在 Cloud Storage 中存储日志的更改之后将生效。

时间点恢复中使用的预写式日志会连同其关联的自动备份自动删除,通常是在满足为 transactionLogRetentionDays 设置的值后删除。这是 Cloud SQL 为进行时间点恢复而保留的事务日志的天数(1 至 7 天)。

对于在 Cloud Storage 中存储预写式日志的实例,日志存储在主实例所在的区域中。此日志存储(最长 7 天,即时间点恢复时长上限)不会为每个实例产生额外费用。

如果实例启用了时间点恢复,并且磁盘上的预写式日志大小导致实例出现问题,则停用时间点恢复并重新启用以确保新日志存储在与实例位于同一区域的 Cloud Storage 中。此操作会删除现有的预写式日志,因此您执行时间点恢复的时间不能早于您重新启用时间点恢复的时间。不过,虽然现有日志会被删除,但磁盘大小保持不变。

为避免出现意外的存储问题,我们建议您在使用时间点恢复时为所有实例启用存储空间自动扩容。仅当实例启用了时间点恢复且日志存储在磁盘上时,此建议才适用。

如需删除日志并恢复存储空间,您可以停用时间点恢复。但请注意,减少所使用的预写式日志不会缩小为实例预配的磁盘大小。

临时数据包含在存储使用量指标中。临时数据在维护期间会被移除,并且可以超出用户定义的容量限制,以避免触发“磁盘已满”事件,而用户则无需为此付费。

新创建的数据库的系统表和文件会使用大约 100 MB 的空间。

磁盘读取/写入操作次数 正式版
disk/read_ops_countdisk/write_ops_count

“读取次数”指标表示从磁盘(而非缓存)处理的读取操作次数。您可以使用此指标来了解实例的大小是否适合您的环境。如果需要,您可以选择资源规模更大的机器类型,以通过缓存处理更多请求,并缩短延迟时间。

“写入次数”指标表示对磁盘执行的写入操作次数。即使您的应用未处于活跃状态,也会生成写入活动,因为 Cloud SQL 实例(禁止副本)大约每秒写入系统表一次。

连接数(按状态)正式版
postgresql/num_backends_by_state

按以下状态分组的连接数:idleactiveidle_in_transactionidle_in_transaction_aborteddisabledfastpath_function_call

如需了解这些状态,请参阅 pg_stat_activity 文档中的 state text 行。

每个数据库的连接数 正式版
postgresql/num_backends

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

入站流量/出站流量字节数 正式版
network/received_bytes_countnetwork/sent_bytes_count

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

IO 等待时间(按类型细分)正式版
postgresql/insights/aggregate/io_time

按读写类型细分的 SQL 语句的 I/O 等待时间。

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

死锁计数(按数据库)正式版
postgresql/deadlock_count

每个数据库的死锁数量。

块读取计数 正式版
postgresql/blocks_read_count

每秒从磁盘和缓冲区缓存中读取的块数。

操作处理的行数 正式版
postgresql/tuples_processed_count

每次操作每秒处理的行数。

数据库中的行数(按状态)正式版
postgresql/tuple_size

每个数据库状态的行数。如果实例中的数据库数量少于 50,则 Cloud SQL 会报告此指标。

最早事务(按存在时间)正式版
postgresql/vacuum/oldest_transaction_age

阻止清空操作的最早事务的存在时间。

WAL 归档 正式版
replication/log_archive_success_countreplication/log_archive_failure_count

每分钟已归档成功或失败的预写式日志文件的数量。

事务 ID 利用率 正式版
postgresql/transaction_id_utilization

实例中使用的事务 ID 的百分比。

每个应用名称的连接数 正式版
postgresql/num_backends_by_application

与 Cloud SQL 实例的连接数(按应用分组)。

没有应用名称的连接将分组为 Unknown

提取的行数、返回的行数与写入的行数
  • 提取的行数 正式版 postgresql/tuples_fetched_count
  • 返回的行数 正式版 postgresql/tuples_returned_count
  • 写入的行数 正式版 postgresql/tuples_processed_count
  • 提取的行数是指实例中的查询结果提取的行数。
  • 返回的行数是处理实例中的查询时扫描的行数。
  • 写入的行数是执行插入、更新和删除操作时在实例中写入的行数。

如果返回的行数与提取的行数之间的差异很大,以致于它们的值无法以相同表达方法显示,那么提取的行数值将显示为 0,因为与返回的行数相比,此值可以忽略不计。

临时数据大小 正式版
postgresql/temp_bytes_written_count

用于查询执行和执行算法(如联接和排序)的总数据量(以字节为单位)。

临时文件数 正式版
postgresql/temp_files_written_count

用于查询执行和执行算法(例如联接和排序)的临时文件的数量。

此外,Cloud Logging 指标“日志条目(按严重级别划分)”(logging.googleapis.com/log_entry_count) 也会显示错误和警告日志条目的总数

这些条目是从 postgres.log(数据库日志)和 pgaudit.log(包含数据访问信息)中提取的。

如需了解详情,请参阅 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

后续步骤