Data Cache 可观测性
早期版本中 Data Cache 特性缺少相关监控指标和有效的监控手段。3.3 版本对 Data Cache 的可观测性做了提升,支持通过以下几种方式来观测 Data Cache 相关指标,帮助用户清晰了解 Data Cache 的整体磁盘和内存用量,以及详细的指标。
注意
从 v3.4 版本开始,数据湖外表和云原生表(存算分离)查询统一使用 Data Cache 实例。因此,除特殊说明外,以下可视化方式中默认展示的是 Data Cache 实例自身的指标,即同时包含了数据湖外表和云原生表查询的缓存使用情况。
SQL 查询
通过 SQL 语句,可以查询集群中每个 BE 节点的 Data Cache 容量指标信息。
SHOW BACKENDS
DataCacheMetrics 字段记录了 Data Cache 的磁盘用量和内存用量。
mysql> show backends\G
*************************** 1. row ***************************
BackendId: 10004
IP: XXX.XX.XX.XXX
HeartbeatPort: 4450
BePort: 4448
HttpPort: 4449
BrpcPort: 4451
LastStartTime: 2023-12-13 20:09:30
LastHeartbeat: 2023-12-13 20:10:43
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 48
DataUsedCapacity: 0.000 B
AvailCapacity: 280.103 GB
TotalCapacity: 1.968 TB
UsedPct: 86.10 %
MaxDiskUsedPct: 86.10 %
ErrMsg:
Version: datacache-heartbeat-c68caf7
Status: {"lastSuccessReportTabletsTime":"2023-12-13 20:10:38"}
DataTotalCapacity: 280.103 GB
DataUsedPct: 0.00 %
CpuCores: 104
NumRunningQueries: 0
MemUsedPct: 0.00 %
CpuUsedPct: 0.0 %
DataCacheMetrics: Status: Normal, DiskUsage: 0.00GB/2.00GB, MemUsage: 0.00GB/30.46GB
1 row in set (1.90 sec)
information_schema
information_schema 下的 be_datacache_metrics 视图记录了 Data Cache 的内存和磁盘容量和用量信息。
mysql> select * from information_schema.be_datacache_metrics;
+-------+--------+------------------+-----------------+-----------------+----------------+-----------------+----------------------------------------------------------------------------------------------+
| BE_ID | STATUS | DISK_QUOTA_BYTES | DISK_USED_BYTES | MEM_QUOTA_BYTES | MEM_USED_BYTES | META_USED_BYTES | DIR_SPACES |
+-------+--------+------------------+-----------------+-----------------+----------------+-----------------+----------------------------------------------------------------------------------------------+
| 10004 | Normal | 2147483648 | 0 | 32706263420 | 0 | 0 | [{"Path":"/home/disk1/datacache","QuotaBytes":2147483648}] |
+-------+--------+------------------+-----------------+-----------------+----------------+-----------------+----------------------------------------------------------------------------------------------+
1 row in set (5.41 sec)
BE_ID:BE ID。STATUS:BE 节点状态。DISK_QUOTA_BYTES:用户配置的总磁盘缓存容量。DISK_USED_BYTES:当前实际使用的磁盘缓存空间。MEM_QUOTA_BYTES:用户配置的内存缓存容量。MEM_USED_BYTES:当前实际使用的内存缓存空间。META_USED_BYTES:系统元数据占用的内存空间。DIR_SPACES:磁盘上的 cache 路径,以及对应的 cache 大小。
调用 API
自 v3.3.2 起,StarRocks 提供了两个 API 接口获取缓存指标,其反应的是系统不同层面的缓存状态:
/api/datacache/app_stat:查询 Block Cache 和 Page Cache 的缓存命中率。/api/datacache/stat:Data Cache 的底层执行状态。该接口主要用于 Data Cache 的运维和性能问题定位,并不能反应查询的真实命中率,普通用户无需关注该接口。