该表在开启资源组功能后,展示当前系统中所有资源组的配置详情、资源使用状态及运行指标,帮助管理员监控和调整资源分配策略。
字段名称 | 数据类型 | 字段含义说明 |
|---|---|---|
name | String | 资源组名称,系统内唯一标识,用于区分不同资源组。 |
enable | UInt8 | 资源组是否启用的状态标识。1 表示已启用,资源组可正常分配资源并接收查询;0 表示未启用,资源组不参与资源分配,匹配该资源组的查询将无法使用其配置资源。 |
can_run_more | UInt8 | 资源组当前是否允许新增执行中查询的标识。1 表示当前并发查询数未达上限,可新增执行查询;0 表示并发量已超限,无法新增执行查询,需等待已有查询完成或进入等待队列(若队列未满)。 |
can_queue_more | UInt8 | 资源组等待队列是否可接收新查询的标识。1 表示等待队列未占满,可新增等待查询;0 表示等待队列已占满,后续匹配该资源组的查询将直接报错,无法进入队列。 |
soft_max_memory_usage | UInt64 | 单台机器上该资源组可使用的内存上限,单位为字节(Byte)。默认值为 0,表示不限制内存使用;若设置具体数值,当资源组在单台机器的内存使用接近或超过该值时,可能触发内存超限保护(如限制新查询执行)。 |
cached_memory_usage | UInt64 | 该资源组当前已使用的缓存内存量,单位为字节(Byte)。当 |
initial_query_only | UInt8 | 是否仅允许 “初始查询”(通常指系统启动阶段或资源组初始化时触发的核心查询)使用该资源组的标识。1 表示仅允许初始查询使用,非初始查询将被拒绝;0 表示无限制,所有匹配该资源组的查询均可使用其资源。 |
max_concurrent_queries | UInt64 | 资源组允许同时执行的最大查询数量(并发查询上限)。默认值为 0,表示不限制并发数;若设置具体数值,当 |
running_queries | UInt64 | 资源组当前正在执行中的查询数量,实时反映资源组的查询执行负载。该数值若接近或等于 |
max_queued | UInt64 | 资源组匹配的查询可进入等待队列的最大数量(队列容量上限)。设置为 0 表示不限制队列大小(理论上可无限等待);若设置具体数值,当 |
queued_queries | UInt64 | 资源组当前处于等待队列中,等待执行资源释放的查询数量。该数值若接近或等于 |
priority | UInt32 | 资源组的优先级等级,用于在多资源组竞争系统空闲资源时确定资源分配顺序。数值越大,优先级越高;当系统有空闲 CPU、内存等资源时,优先级高的资源组将优先获得额外资源补充。 |
cpu_shares | UInt64 | 资源组在 cgroups(Linux 控制组)中占用的 CPU 份额(soft 隔离机制),默认为 0 表示不使用 cgroups CPU 隔离。若用户希望提高 CPU 总利用率(允许资源组在其他资源组空闲时使用剩余 CPU),同时可接受部分隔离效果偏差(如配置 1:4 的份额比例,实际 CPU 占用可能回退到 1:2),可通过该参数设置份额比例(如 1024、2048 等,比例对应份额值比例)。 |
max_cpu_cores | Int64 | 资源组最多可使用的 CPU 核心数(硬限制),默认为 -1 表示不限制 CPU 核心使用;若设置具体正整数(如 12),则该资源组的 CPU 占用量无论如何都不会超过该核心数,确保其他资源组的 CPU 资源不被过度占用。 |
cpu_set_cpus | String | 指定该资源组绑定的 CPU 核心编号,实现 CPU 亲和性配置,默认为空字符串表示不绑定特定 CPU 核心。可配置格式为 “核心编号范围”(如 "0-3" 表示绑定 CPU0 至 CPU3 核心),绑定后资源组的查询仅在指定核心上执行,减少 CPU 上下文切换开销。 |
hardware_cpu_cores | UInt64 | 当前资源组可使用的物理 CPU 核心总数,反映资源组的 CPU 硬件资源基础。该数值由系统根据资源组配置(如 |
cpu_cfs_period_us | UInt64 | 调整 cgroups 中 CPU CFS(Completely Fair Scheduler,完全公平调度器)的周期时长,单位为微秒(μs),默认为 100000(即 0.1 秒)。该参数用于控制 CPU 资源的调度周期,配合 |
parent_resource_group | String | 父资源组的名称,用于实现资源组的层级管理(如父资源组分配总资源,子资源组从父资源组中划分部分资源)。若为空字符串,表示该资源组为顶级资源组,无父资源组,直接从系统获取资源。 |
cpu_average_usage_1 | Double | 资源组过去 1 分钟内的 CPU 平均使用率,单位通常为 “核心数”(如 0.5 表示平均使用 0.5 个 CPU 核心),实时反映资源组近期的 CPU 负载情况。 |
cpu_average_usage_5 | Double | 资源组过去 5 分钟内的 CPU 平均使用率,单位为 “核心数”,相比 1 分钟平均使用率更能反映资源组 CPU 负载的中期趋势,减少短期波动影响。 |
cpu_average_usage_10 | Double | 资源组过去 10 分钟内的 CPU 平均使用率,单位为 “核心数”,反映资源组 CPU 负载的长期趋势,适合用于判断资源组 CPU 资源配置是否合理(如长期使用率过高可能需要扩容)。 |
max_disk_read_bandwidth | Int64 | 资源组对本地磁盘的最大读取速率限制(仅统计穿透 PageCache 的流量,即直接从磁盘读取而非从内存缓存读取的流量),单位通常为字节/秒(Byte/s)。默认为 -1 表示不限制磁盘读取速率;若设置具体数值,当磁盘读取速率超过该值时,将被限流。 |
max_disk_write_bandwidth | Int64 | 资源组对本地磁盘的最大写入速率限制(仅统计穿透 PageCache 的流量,即直接写入磁盘而非写入内存缓存的流量),单位通常为字节/秒(Byte/s)。默认为 -1 表示不限制磁盘写入速率;若设置具体数值,当磁盘写入速率超过该值时,将被限流。 |
cpu_isolation_effect | UInt8 | CPU 隔离效果的状态标识,用于判断资源组的 CPU 隔离是否生效。1 表示 CPU 隔离已正常生效(如 |
exception | String | 资源组的异常信息描述,若资源组存在配置错误、资源分配失败、隔离机制异常等问题,该字段将记录具体的异常原因;若正常运行,该字段为空字符串。 |
customized_settings | Map/String | 创建资源组时用户添加的自定义配置项,以键值对(Key-Value)形式存储。例如用户可自定义 “query_timeout”(查询超时时间)、“memory_overcommit_ratio”(内存超配比例)等非默认参数,为空则表示未配置自定义设置。 |
SELECT * FROM system.resource_groups LIMIT 1
Row 1: ────── name: doc_demo enable: 1 can_run_more: 1 can_queue_more: 1 soft_max_memory_usage: 51539607552 -- 51.54 billion cached_memory_usage: 0 initial_query_only: 0 max_concurrent_queries: 50 running_queries: 0 max_queued: 50 queued_queries: 0 priority: 0 cpu_shares: 0 max_cpu_cores: 12 cpu_set_cpus: hardware_cpu_cores: 16 cpu_cfs_period_us: 100000 parent_resource_group: cpu_average_usage_1: 0 cpu_average_usage_5: 0.000002 cpu_average_usage_10: 0.000001 max_disk_read_bandwidth: -1 max_disk_write_bandwidth: -1 cpu_isolation_effect: 1 exception: customized_settings: {}