我想实时查看某个业务租户的 CPU 使用率、内存消耗和 QPS 指标。在不部署 OCP 的情况下,有哪些常用的 SQL 语句或系统视图(如 GV$SYSSTAT 、GV$OB_PROCESSLIST )可以查询这些实时性能数据?
为了实时查看某个业务租户的 CPU 使用率、内存消耗和 QPS 指标,您可以使用以下 SQL 语句或系统视图来查询这些实时性能数据,无需部署 OCP:
-
CPU 使用率 和 内存消耗 可以通过查询
GV$SYSSTAT视图来获取,例如:
obclient> SELECT name, value
FROM GV$SYSSTAT
WHERE name IN ('cpu usage', 'max cpus', 'memory usage', 'max memory size')
AND svr_ip = '${svr_ip}' AND svr_port = ${svr_port};
其中 svr_ip 和 svr_port 需要替换为您要查询的具体 OBServer 的 IP 地址和端口号。通过上述查询,您可以得到租户的 CPU 使用率 (cpu usage / max cpus) 和内存消耗 (memory usage / max memory size)。
-
QPS (每秒查询次数) 可以通过查询
GV$OB_PROCESSLIST视图来估算,例如:
obclient> SELECT COUNT(*) AS qps
FROM GV$OB_PROCESSLIST
WHERE tenant_id = (SELECT tenant_id FROM oceanbase.DBA_OB_TENANTS WHERE tenant_name = '${tenant_name}')
AND svr_ip = '${svr_ip}' AND svr_port = ${svr_port}
AND command NOT IN ('Sleep', 'Daemon')
AND time <= 1;
这里的 tenant_name 需要替换为您的租户名称,而 svr_ip 和 svr_port 同样需要替换为您要查询的具体 OBServer 的 IP 地址和端口号。这条 SQL 语句会返回在过去 1 秒内执行的非空闲连接数,可以近似认为是 QPS 指标。
检索到的文档如下:
学习下