> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 包含系统在后台定期计算的指标的系统表。例如，当前使用中的 RAM 量。

# system.asynchronous_metrics

<Info>
  **在 ClickHouse Cloud 中查询**

  此系统表中的数据分别保存在 ClickHouse Cloud 各节点的本地。因此，如需查看所有数据的完整情况，需要使用 `clusterAllReplicas` 函数。更多详情请参见[此处](/zh/reference/system-tables/overview#system-tables-in-clickhouse-cloud)。
</Info>

## 描述

包含在后台定期计算的指标。例如，已使用的 RAM 量。

指标要么是标量 (`value` 列中的单个数值) ，要么是键值指标：按实体细分，例如按 CPU 核心、块设备、网络接口或磁盘细分。键值指标以单行形式表示，`key_values` 列中包含一个 [Map](/zh/reference/data-types/map) (例如，`CPUFrequencyMHz` 将每个 CPU 核心编号映射到其频率) ，其 `value` 列为 `非数字`。

在 26.8 版本之前，每个键都是一个独立的标量指标，键名被嵌入指标名称中 (`CPUFrequencyMHz_0`)。[`asynchronous_metrics_key_values_mode`](/zh/reference/settings/server-settings/settings/asynchronous-metrics#asynchronous_metrics_key_values_mode) 服务器设置可切换回该形式 (`legacy_names`)，或在迁移监控时同时显示两种形式 (`both`)。

## 指标说明

以下说明由 `utils/generate-async-metrics-docs` 根据 C++ 源代码生成。唯一的权威来源是 `src/Common/AsynchronousMetrics.cpp`、`src/Interpreters/ServerAsynchronousMetrics.cpp` 和 `src/Coordination/KeeperAsynchronousMetrics.cpp` 中每项指标注册语句旁边的字符串字面量。包含可变部分 (目前仅限 HTTP 连接池组) 的指标名称会以 `*name*` 占位符显示；运行中的服务器在上报时会将其替换为实际名称。

### AsynchronousHeavyMetricsCalculationTimeSpent

计算异步重型 (与表相关) 指标所花费的时间 (单位：秒)  (这是异步指标带来的开销) 。

### AsynchronousHeavyMetricsUpdateInterval

高开销 (与表相关) 指标的更新间隔

### AsynchronousMetricsCalculationTimeSpent

计算异步指标所花费的时间 (单位：秒)  (即异步指标的额外开销) 。

### AsynchronousMetricsUpdateInterval

指标更新间隔

### AsyncLoggingQueueSize

按日志通道名称分类的、已排队等待写入日志的异步消息数量。

### BlockActiveTime

每个块设备的 IO 请求在队列中等待的时间 (以秒为单位) 。键为块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockActiveTimePerOp

与 `BlockActiveTime` 指标类似，但该值除以 IO 操作数，以计算每次操作的时间。键为块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockDiscardBytes

每个块设备上已丢弃的字节数。这些操作与 SSD 相关。ClickHouse 不使用丢弃操作，但系统中的其他进程可能会使用。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockDiscardMerges

由 OS IO 调度器向每个块设备发起并合并的 丢弃操作 次数。这些操作与 SSD 有关。ClickHouse 不使用 丢弃操作，但系统上的其他进程可能会使用。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockDiscardOps

每个块设备请求的 丢弃操作 次数。这些操作与 SSD 相关。ClickHouse 不使用 丢弃操作，但系统上的其他进程可能会使用。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockDiscardTime

每个块设备请求的丢弃操作所耗费的时间 (以秒为单位) ，为所有操作的总和。这些操作与 SSD 相关。ClickHouse 不使用丢弃操作，但系统上的其他进程可能会使用。键是块设备的名称。这是一个系统级指标，涵盖主机上的所有进程，而不仅仅是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockInFlightOps

该值统计每个块设备中已发送至设备驱动程序但尚未完成的 I/O 请求数量。它不包括处于队列中但尚未发送至设备驱动程序的 I/O 请求。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockQueueTime

此值统计每个块设备上 IO 请求等待的毫秒数。如果有多个 IO 请求在等待，此值将按等待毫秒数与等待请求数的乘积增加。键为块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockQueueTimePerOp

与 `BlockQueueTime` 指标类似，但该值除以 IO 操作数量，以计算每次操作的时间。键为块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockReadBytes

从每个块设备读取的字节数。由于使用了可节省 IO 的 OS 页面缓存，该值可能低于从文件系统读取的字节数。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockReadMerges

由 OS IO 调度器合并的、从每个块设备发起的读操作数。键为块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockReadOps

每个块设备请求的读操作数。键为块设备名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockReadTime

从每个块设备发起的读操作所耗费的时间 (以秒为单位) ，为所有此类操作的总和。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockWriteBytes

写入每个块设备的字节数。由于使用了可减少 IO 的操作系统 OS 页面缓存，其值可能低于写入 虚拟文件系统 的字节数。由于直写缓存，块设备上的写入可能会晚于 虚拟文件系统 中对应的写入发生。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。来源：`/sys/block`。另请参阅 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockWriteMerges

由 OS IO 调度器 请求并合并的各块设备写操作数。键是块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockWriteOps

针对每个块设备发起的写操作数。键为块设备的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### BlockWriteTime

从每个块设备发起的写操作所耗费的时间 (以秒为单位) ，为所有操作的总和。键是块设备的名称。这是一个系统级指标，涵盖主机上的所有进程，而不仅仅是 clickhouse-server。来源：`/sys/block`。参见 [https://www.kernel.org/doc/Documentation/block/stat.txt](https://www.kernel.org/doc/Documentation/block/stat.txt)

### CGroupMaxCPU

根据 CGroups 计算的最大 CPU 核心数。

### CGroupMemoryTotal

cgroup 中的内存总量，单位为字节。如果该值为 0，则限制与 OSMemoryTotal 相同。

### CGroupMemoryUsed

cgroup 中已使用的内存量，单位为字节。在 cgroup v2 中，它表示 anon + sock + 不可回收的内核内存；在 cgroup v1 中，它表示 RSS。两种情况下都不包含内核的 OS page cache (基于文件的缓存) 。

### CGroupMemoryUsedWithoutPageCache

cgroup 中已使用的内存量，单位为字节，不包括 ClickHouse 用户态页缓存。其值等于 CGroupMemoryUsed 减去用户态页缓存的大小。禁用用户态页缓存时，该值等于 CGroupMemoryUsed。

### CGroupSystemTime

CPU 核心运行 操作系统内核 (system) 代码的时间占比。

### CGroupSystemTimeNormalized

该值与 `CGroupSystemTime` 类似，但会除以可用的 CPU 核心数，因此无论核心数量多少，结果都落在 \[0..1] 区间内。这样一来，即使 集群 中各 server 的核心数不一致，你也可以对多个 server 上的该指标值求平均，并仍然得到平均资源利用率指标。如果已指定，则可以使用 Cgroup CPU 配额除以其周期的结果来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### CGroupUserTime

CPU 核心执行用户态代码的时间占比。它还包括由于 CPU 内部原因导致 CPU 未得到充分利用的时间 (例如内存加载、流水线停顿、分支预测错误、运行另一个 SMT 核心时的时间) 。

### CGroupUserTimeNormalized

该值与 `CGroupUserTime` 类似，但会除以可用 CPU 核心数，因此无论核心数多少，结果都会落在 \[0..1] 区间内。这样一来，即使集群中各服务器的核心数并不一致，你仍然可以对多台服务器上的这一指标求平均，并得到平均资源利用率指标。如果指定了，也可以用 Cgroup CPU 配额除以其 period 的结果来代替实际 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### CompiledExpressionCacheBytesMax

已编译表达式缓存的配置最大容量 (字节) 。可用余量 = 此值 - `CompiledExpressionCacheBytes` (CurrentMetric) 。

### CompiledExpressionCacheCountMax

已编译表达式缓存配置的最大条目数。可用余量 = 此值减去 `CompiledExpressionCacheCount` (CurrentMetric) 。

### CPUFrequencyMHz

每个 CPU 核心的当前频率，单位为 MHz，以 CPU 核心编号为键。大多数现代 CPU 会为节能和 Turbo Boost 而动态调整频率。

### DeadBlobsQueueEstimate

预计已加入队列、等待从磁盘对象存储中删除的 blob 数量 (blob 管理器 的死对象队列) ，以磁盘名称为键。未启用 blob 复制的磁盘报告 0。

### 字典最大更新延迟

字典更新的最大延迟时间 (以秒为单位)

### 字典TotalFailedUpdates

所有字典自上次成功加载以来的错误数量。

### DiskAvailable

每个磁盘 (虚拟文件系统) 中的可用字节数，以磁盘名称作为键。远程文件系统可能不提供此信息，并且可能会显示很大的数值，例如 16 EiB。

### DiskGetObjectThrottlerAvailable

以磁盘名称为键的每个磁盘 (虚拟文件系统) 当前可发出的 GetObject 请求数量，即在不触发限流限制的情况下可发出的请求数。本地文件系统可能不提供此信息。

### DiskGetObjectThrottlerRPS

每个磁盘的 GetObject 请求限流限制，单位为每秒请求数 (虚拟文件系统) ，以磁盘名称为键。本地文件系统可能不提供此信息。

### DiskPutObjectThrottlerAvailable

以磁盘名称为键的每个磁盘 (虚拟文件系统) 当前在不触发限流限制的情况下可发出的 PutObject 请求数量。本地文件系统可能不提供此信息。

### DiskPutObjectThrottlerRPS

每个磁盘 PutObject 请求的限流限制，单位为每秒请求数 (虚拟文件系统)，以磁盘名称为键。本地文件系统可能不提供此信息。

### DiskTotal

每个磁盘 (虚拟文件系统) 的总大小，单位为字节，以磁盘名称为键。远程文件系统可能不提供此信息，并可能显示较大的值，例如 16 EiB。

### DiskUnreserved

每个磁盘 (虚拟文件系统) 中未预留给合并、拉取和移动操作的可用字节数，以磁盘名称为键。远程文件系统可能不提供此信息，并且可能会显示很大的数值，例如 16 EiB。

### DiskUsed

每个磁盘 (虚拟文件系统) 上的已用字节数，以磁盘名称为键。远程文件系统不一定会提供此信息。

### EDACCorrectable

以内存控制器编号为键的可纠正 ECC 内存错误数。该值较高通常表示 RAM 存在故障，必须立即更换，因为即使已有大量错误被纠正，仍可能发生静默错误，从而导致数据损坏。来源：`/sys/devices/system/edac/mc/`

### EDACUncorrectable

以内存控制器编号为键的不可纠正的 ECC 内存错误数。该值非零表示 RAM 已出现故障，必须立即更换，因为这意味着可能发生数据损坏。来源：`/sys/devices/system/edac/mc/`

### ExecutableUserDefinedFunctionMemoryResidentBytes

所有存活的 executable 和 executable\_pool 用户自定义函数进程及其子进程的驻留集大小 (VmRSS) 总和，单位为字节。包含空闲的 executable\_pool 工作线程。共享页会对每个进程分别计一次，因此该总和只是一个上界，可能会超过 UDF 进程实际独占的物理内存用量。

### ExecutableUserDefinedFunctionProcesses

为 executable 和 executable\_pool 用户自定义函数启动的存活进程数量，包括其子进程。

### FilesystemCacheBytes

虚拟文件系统 `cache` 中的总字节数。该缓存存储在磁盘上。

### FilesystemCacheCapacity

`cache` 虚拟文件系统的总容量。该缓存存储在磁盘上。

### FilesystemCacheFiles

`cache` 虚拟文件系统中已缓存的 File 段总数。该缓存存储在磁盘上。

### FilesystemLogsPathAvailableBytes

挂载 ClickHouse 日志路径的卷中的可用字节数。如果该值接近零，您应在配置文件中调整日志轮转设置。

### FilesystemLogsPathAvailableINodes

挂载 ClickHouse 日志路径的卷上可用的 inode 数量。

### FilesystemLogsPathTotalBytes

挂载 ClickHouse 日志路径的卷容量大小，以字节为单位。建议至少为日志预留 10 GB 空间。

### FilesystemLogsPathTotalINodes

挂载 ClickHouse 日志路径所在卷上的 inode 总数。

### FilesystemLogsPathUsedBytes

挂载 ClickHouse 日志路径所在卷的已用字节数。

### FilesystemLogsPathUsedINodes

挂载 ClickHouse 日志路径的卷上已使用的 inode 数量。

### FilesystemMainPathAvailableBytes

挂载 ClickHouse 主路径所在卷上的可用字节数。

### FilesystemMainPathAvailableINodes

挂载 ClickHouse 主路径的卷上可用的 inode (索引节点) 数量。如果该值接近零，说明存在配置错误；即使磁盘未满，也会出现“设备上没有剩余空间”的错误。

### FilesystemMainPathTotalBytes

挂载 ClickHouse 主路径的卷大小，以字节为单位。

### FilesystemMainPathTotalINodes

挂载主 ClickHouse 路径的卷上的 inode 总数。如果小于 2500 万，则表示配置有误。

### FilesystemMainPathUsedBytes

挂载 ClickHouse 主路径所在卷上已使用的字节数。

### FilesystemMainPathUsedINodes

挂载 ClickHouse 主路径的卷上已使用的 inode 数量。该值基本上对应于文件数量。

### GRPCRejectedConnections

gRPC 协议的被拒绝连接数。

### GRPCThreads

GRPC 协议服务端的线程数。

### HashTableStatsCacheEntries

哈希表大小缓存中的条目数量。该缓存用于对 GROUP BY 进行预测性优化。

### HashTableStatsCacheHits

哈希表大小预测命中的次数。

### HashTableStatsCacheMisses

哈希表大小预测不准确的次数。

### HTTPConnectionPool*group\_name*TCPRcvBufTotalBytes

所有 HTTP 连接池套接字的内核 TCP 接收缓冲区内存总量 (`sk_rmem_alloc`) 。

### HTTPConnectionPool*group\_name*TCPSndBufTotalBytes

所有 HTTP 连接池套接字的内核 TCP 发送缓冲区内存 (sk\_wmem\_alloc) 总量。

### HTTPRejectedConnections

HTTP 接口 (未启用 TLS) 的被拒连接数。

### HTTPSecureRejectedConnections

HTTPS 接口的被拒绝连接数。

### HTTPSecureThreads

HTTPS 接口服务器中的线程数。

### HTTPThreads

HTTP 接口服务器 (不含 TLS) 的线程数。

### InterserverRejectedConnections

副本间通信协议 (不使用 TLS) 的被拒绝连接数。

### InterserverSecureRejectedConnections

使用 TLS 的副本间通信协议的被拒连接数。

### InterserverSecureThreads

使用 TLS 的副本通信协议服务器中的线程数。

### InterserverThreads

副本通信协议服务器中的线程数 (不使用 TLS) 。

### jemalloc.active

底层内存分配器 (jemalloc) 的内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.allocated

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.arenas.all.dirty\_purged

这是底层内存分配器 (jemalloc) 的一个内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.arenas.all.muzzy\_purged

jemalloc 底层内存分配器的内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.arenas.all.pactive

jemalloc 这一底层内存分配器的内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.arenas.all.pdirty

底层内存分配器 (jemalloc) 的内部度量指标。请参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.arenas.all.pmuzzy

这是底层内存分配器 (jemalloc) 的一个内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.arenas.dirty\_decay\_ms

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.background\_thread.num\_runs

jemalloc 这一底层内存分配器的内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.background\_thread.num\_threads

jemalloc 底层内存分配器的内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.background\_thread.run\_intervals

jemalloc 底层内存分配器的一个内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.cache\_arena.pactive

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.cache\_arena.pdirty

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.epoch

jemalloc (Jason Evans 的内存分配器) 统计信息的内部递增更新序号，用于所有其他 `jemalloc` 指标。

### jemalloc.fragmentation

`jemalloc.active` 与 `jemalloc.allocated` 之间的差值，表示内存分配器中的内部碎片 (即未被内存分配充分利用的活动页) 。

### jemalloc.jit\_arena.active\_bytes

专用 jemalloc JIT arena 中处于活动状态的字节数。包括：(a) LLVM 堆状态 (TargetMachine 及其特定目标的 Subtarget、IR 模块、优化过程分析、RuntimeDyld 重定位表) ；以及 (b) `JITModuleMemoryManager` 通过 `posix_memalign` 为可执行代码段/数据段分配的页对齐预留块 (会被拦截并转至 `je_posix_memalign`，因此经由 jemalloc 分配) 。`CompiledExpressionCacheBytes` (CurrentMetric) 只是其中的一个*子集*——它仅跟踪可执行代码段/数据段的预留页块容量，不跟踪这些块中实际使用的代码/数据字节数。

### jemalloc.jit\_arena.dirty\_bytes

JIT arena 中可回收并返还给操作系统的脏字节数。

### jemalloc.jit\_arena.pactive

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.jit\_arena.pdirty

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.mapped

jemalloc (底层内存分配器) 的一个内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.mergetree\_arena.active\_bytes

专用 jemalloc MergeTree arena 池 (`jemalloc.mergetree_arena.count` 个 arena) 中汇总的活动字节数。它保存长期存在的 MergeTree 堆状态：每个 part 的元数据 (`SerializationInfoByName`、`MergeTreeDataPartChecksums` tree、每个 `IMergeTreeDataPart` 内部 `Poco::LRUCache<String, ColumnSize>` 的委托对象、每个 part 的 `ColumnSize`/`IndexSize` map、`MinMaxIndex`、`VersionMetadataOnDisk`，以及 `MergeTreeDataPart{Compact,Wide}` 对象本身)、表中各 part 共享的元数据 (`NamesAndTypesList`、`column_name_to_position`、`serializations` map 和 `ColumnsSubstreams`，请参阅 `SharedPartColumns.h`)，以及每个表的元数据 (通过 `setProperties` 设置的 `StorageInMemoryMetadata` / `ColumnsDescription` / `VirtualColumnsDescription` 克隆、`serialization_hints` 聚合，以及 `shared_part_columns_cache`) 。活动 parts 和等待清理的过期分区片段都会计入其中。它与 cache arena 和 JIT arena 相互独立。每个 part 的列 `system.parts.primary_key_bytes_in_memory[_allocated]` 和 `system.parts.index_granularity_bytes_in_memory[_allocated]` 是此指标的子集 (当它们的值非零时) 。即使主索引由 `PrimaryIndexCache` 拥有，它也会在此处进行分配 (这是有意为之：在 part 已提交后，于 cache 边界重新安置它可能会失败) ，因此 `PrimaryIndexCacheBytes` 与此指标存在重叠。

### jemalloc.mergetree\_arena.count

用于存储长期存在的 MergeTree 元数据的专用 jemalloc arena 数量，由服务器设置 `jemalloc_merge_tree_arenas` 控制。0 表示禁用专用 arena 池，元数据将在默认的各 CPU arena 中分配；1 表示一个共享 arena；N > 1 表示按 CPU 分段的池。参见 `jemalloc.mergetree_arena.active_bytes`。

### jemalloc.mergetree\_arena.dirty\_bytes

专用 jemalloc MergeTree arena 池中可回收并返还给操作系统的脏字节数之和。

### jemalloc.mergetree\_arena.pactive

专用 jemalloc MergeTree Arena 池中活跃页数之和。

### jemalloc.mergetree\_arena.pdirty

专用 jemalloc MergeTree Arena 池中的脏页总数。

### jemalloc.metadata

底层内存分配器 (jemalloc) 的一个内部度量指标。请参阅 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.metadata\_thp

这是底层内存分配器 (jemalloc) 的内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.prof.active

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.prof.lg\_sample

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.prof.thread\_active\_init

底层内存分配器 (jemalloc) 的一项内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.resident

底层内存分配器 (jemalloc) 的内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### jemalloc.retained

jemalloc 这一底层内存分配器的一个内部度量指标。参见 [https://jemalloc.net/jemalloc.3.html](https://jemalloc.net/jemalloc.3.html)

### 抖动

用于计算异步指标的线程计划被唤醒的时间与实际被唤醒的时间之间的差值。可作为反映整体系统延迟和响应能力的代理指标。

### KeeperApproximateDataSize

ClickHouse Keeper 的估算数据大小，单位为字节。

### KeeperAvgLatency

ClickHouse Keeper 的平均请求延迟。

### KeeperCommitLogsCacheEntries

由更新日志预读读取器在提交线程前缓冲的已解码日志条目数

### KeeperCommitLogsCacheSize

由更新日志预读读取器在提交线程前缓冲的已解码日志条目总大小

### KeeperEphemeralsCount

ClickHouse Keeper 中的临时节点数量。

### KeeperFollowers

ClickHouse Keeper 的跟随者数量。

### KeeperIsExceedingMemorySoftLimitHit

如果 ClickHouse Keeper 超过了内存软限制，则为 1；否则为 0。

### KeeperIsFollower

如果 ClickHouse Keeper 是 follower，则值为 1，否则为 0。

### KeeperIsLeader

如果 ClickHouse Keeper 是 leader，则值为 1，否则为 0。

### KeeperIsObserver

如果 ClickHouse Keeper 为 observer，则为 1；否则为 0。

### KeeperIsStandalone

如果 ClickHouse Keeper 处于独立运行模式，则为 1；否则为 0。

### KeeperLastCommittedLogIdx

ClickHouse Keeper 中最后一条已提交日志的索引。

### KeeperLastLeaderElectionTime

最近一次在本地观测到的无 leader 时间窗口的耗时 (毫秒) ，该窗口在此 ClickHouse Keeper 实例成为 leader 时结束。未出现已采样无 leader 状态的领导权转移不会被记录。如果此实例不是当前活跃的 leader，或没有已记录的已完成窗口，则为 `0`。

### KeeperLastLeaderUnavailableTime

此 ClickHouse Keeper leader 最近一次在本地观测到、且已结束的无 leader 时间窗口的耗时，单位为毫秒。如果此实例不是当前活跃的 leader，或未记录已结束的无 leader 时间窗口，则为 `0`。

### KeeperLastLogIdx

ClickHouse Keeper 中存储的最后一条日志的索引。

### KeeperLastLogTerm

ClickHouse Keeper 中存储的最后一条日志对应的 Raft 任期。

### KeeperLastSnapshotIdx

最后创建的快照中最后一条日志的索引。

### KeeperLatestLogsCacheEntries

内存缓存中存储的最新日志条目数量

### KeeperLatestLogsCacheSize

最新日志的内存缓存所占用的内存：包括日志条目本身以及每个条目的分配开销。该值受 `latest_logs_cache_size_threshold` 限制

### KeeperLatestSnapshotSize

ClickHouse Keeper 创建的最新快照的未压缩大小 (以字节为单位) 。

### KeeperMaxFileDescriptorCount

ClickHouse Keeper 中打开的文件描述符数量上限。如果无法确定该值，则为 `-1`。

### KeeperMaxLatency

ClickHouse Keeper 的最大请求延迟。

### KeeperMinLatency

ClickHouse Keeper 的最低请求延迟。

### KeeperOpenFileDescriptorCount

ClickHouse Keeper 中已打开的文件描述符数量。若无法确定该值，则为 `-1`。

### KeeperPacketsReceived

ClickHouse Keeper 接收到的数据包数量。

### KeeperPacketsSent

ClickHouse Keeper 已发送的数据包数量。

### KeeperPathsWatched

ClickHouse Keeper 客户端监听的不同路径数量。

### KeeperSessionWithWatches

已设置 watches 的 ClickHouse Keeper 客户端会话数量。

### KeeperSyncedFollowers

处于同步状态的 ClickHouse Keeper 跟随者数量。

### KeeperTargetCommitLogIdx

ClickHouse Keeper 中日志可提交到的最大索引位置。

### KeeperTCPRejectedConnections

Keeper TCP 协议 (不使用 TLS) 的被拒绝连接数。

### KeeperTCPSecureRejectedConnections

Keeper TCP 协议 (启用 TLS) 下被拒绝的连接数。

### KeeperTCPSecureThreads

Keeper TCP 协议服务器 (启用 TLS) 的线程数。

### KeeperTCPThreads

Keeper TCP 协议服务器中的线程数 (不含 TLS) 。

### KeeperWatchCount

ClickHouse Keeper 中 watch 的数量。

### KeeperZnodeCount

ClickHouse Keeper 中的节点 (即数据条目) 数量。

### KeeperZxid

ClickHouse Keeper 中当前的事务 ID (zxid) 。

### LoadAverage1

整个系统的负载，使用指数平滑按 1 分钟平均。该负载表示当前所有进程中的线程数 (即操作系统内核的调度实体) ，包括正在 CPU 上运行、等待 IO，或者已准备就绪但此时尚未被调度运行的线程。这个数值包含所有进程，而不仅仅是 clickhouse-server。如果系统负载过高，且有许多进程已准备运行但仍在等待 CPU 或 IO，那么这个数值可能会大于 CPU 核心数。

### LoadAverage15

整个系统的负载，使用指数平滑按 15 分钟平均。该负载表示当前所有进程中的线程数 (即操作系统内核的调度实体) ，包括正在 CPU 上运行、等待 IO，或者已准备就绪但此时尚未被调度运行的线程。这个数值包含所有进程，而不仅仅是 clickhouse-server。如果系统负载过高，且有许多进程已准备运行但仍在等待 CPU 或 IO，那么这个数值可能会大于 CPU 核心数。

### LoadAverage5

整个系统的负载，使用指数平滑按 5 分钟平均。该负载表示当前所有进程中的线程数 (即操作系统内核的调度实体) ，包括正在 CPU 上运行、等待 IO，或者已准备就绪但此时尚未被调度运行的线程。这个数值包含所有进程，而不仅仅是 clickhouse-server。如果系统负载过高，且有许多进程已准备运行但仍在等待 CPU 或 IO，那么这个数值可能会大于 CPU 核心数。

### LongestRunningMerge

当前运行时间最长的后台合并的耗时 (秒) 。

### 每个分区的最大 parts 数

在所有 MergeTree 家族表的全部分区中，单个分区所包含的最大 parts 数。值大于 300 表明存在配置不当、系统过载或大规模数据加载。

### MemoryCode

服务器进程中机器代码页映射的虚拟内存量，单位为字节。

### MemoryDataAndStack

映射用于栈和已分配内存的虚拟内存大小，单位为字节。是否包含各线程的栈，以及大部分通过 `mmap` 系统调用分配的内存，则未作明确说明。此指标仅为完整性而提供。建议监控时使用 `MemoryResident` 指标。

### MemoryResident

服务器进程占用的物理内存量，单位为字节。

### MemoryResidentMax

服务器进程占用的物理内存上限，单位为字节。

### MemoryResidentWithoutPageCache

服务器进程使用的物理内存量 (以字节为单位) ，不包括用户态页缓存。在使用用户态页缓存时，该指标能更准确地反映实际内存使用情况。禁用用户态页缓存时，该值等于 MemoryResident。

### MemoryShared

服务器进程使用的内存中，同时也被其他进程共享的部分，单位为字节。ClickHouse 不使用共享内存，但由于操作系统自身的原因，某些内存可能会被标记为共享。这个指标并没有太大的参考意义，仅为完整起见而提供。

### MemoryThreadStacksCount

在 /proc/self/smaps 中标记为 `[anon:clickhouse_stack]` 的 pthread 栈 VMA 数量。按重型指标采集周期刷新。需要 Linux 5.17 或更高版本；较旧内核中不提供此指标 (请参阅 `system.warnings` 中的 `MEMORY_THREAD_STACKS_METRIC_UNAVAILABLE` 条目) 。在 macOS 上，它统计任务中标记为 `VM_MEMORY_STACK` 的 VM 区域数量，不包括不可访问的保护区域。

### MemoryThreadStacksResident

pthread 栈的近似常驻集大小，通过 `prctl(PR_SET_VMA_ANON_NAME)` 对 /proc/self/smaps 中标记为 `[anon:clickhouse_stack]` 的 VMA 的 `Rss:` 值求和得出。按重型指标采集周期更新。需要 Linux 5.17 或更高版本；在较旧内核上不可用 (请参阅 `system.warnings` 中的 `MEMORY_THREAD_STACKS_METRIC_UNAVAILABLE` 条目) 。在 macOS 上，该值通过对任务中标记为 `VM_MEMORY_STACK` 的 VM 区域的常驻页面求和得出，不包括不可访问的保护区域。

### MemoryThreadStacksVirtual

pthread 栈的估算虚拟大小，为标记为 `[anon:clickhouse_stack]` 的 /proc/self/smaps VMA 中 `Size:` 值的总和。按重型指标采集周期更新。需要 Linux 5.17 或更高版本；在较旧的内核中不可用 (请参阅 `system.warnings` 中的 `MEMORY_THREAD_STACKS_METRIC_UNAVAILABLE` 条目) 。在 macOS 上，该值为任务中标记为 `VM_MEMORY_STACK` 的 VM 区域大小之和，不包括不可访问的保护区域。

### MemoryVirtual

服务器进程分配的虚拟地址空间大小，以字节为单位。虚拟地址空间通常会远大于物理内存占用，因此不应将其用作内存占用的估算依据。该指标数值较大完全正常，只有在技术层面才有意义。

### MissingBlobsQueueEstimate

按磁盘名称索引的、预计等待复制到该磁盘其他位置的 blob 数量 (blob 管理器缺失队列) 。未启用 blob 复制的磁盘会报告 0。

### MySQLRejectedConnections

MySQL 兼容协议的被拒绝连接数。

### MySQLThreads

MySQL 兼容协议服务器中的线程数。

### NetworkReceiveBytes

通过每个网络接口接收的字节数。键为网络接口名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkReceiveDrop

通过各网络接口接收数据包时丢弃的字节数。键为网络接口名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkReceiveErrors

通过各网络接口接收数据时发生错误的次数。键为网络接口名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkReceivePackets

通过各网络接口接收的网络数据包数量。键为网络接口名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkSendBytes

通过每个网络接口发送的字节数。键为网络接口名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkSendDrop

通过每个网络接口发送时丢弃数据包的次数。键为网络接口的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkSendErrors

通过各网络接口发送数据时发生 error (例如 TCP 重传) 的次数。键为网络接口的名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkSendPackets

通过每个网络接口发送的网络数据包数量。键为网络接口名称。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### NetworkTCPReceiveQueue

服务器上 TCPv4 和 TCPv6 网络套接字的接收队列总大小。

### NetworkTCPSocketRemoteAddresses

服务器上通过 TCPv4 和 TCPv6 使用的网络套接字中，唯一远程地址的总数。

### NetworkTCPSockets

服务器上 TCPv4 和 TCPv6 在所有状态下使用的网络套接字总数。

### NetworkTCPSockets\_*说明*

服务器上处于特定状态的网络套接字总数，包括 TCPv4 和 TCPv6。

### NetworkTCPTransmitQueue

服务器上用于 TCPv4 和 TCPv6 的网络套接字发送队列总大小。

### NetworkTCPUnrecoveredRetransmits

服务器上所用网络套接字在 TCPv4 和 TCPv6 中当前未恢复重传的总大小。

### NumberOfDatabases

服务器上的数据库总数。

### 用户分离的 parts 总数

用户通过 `ALTER TABLE DETACH` 查询从 MergeTree 表中分离的 parts 总数 (不包括意外、损坏或被忽略的 parts) 。服务器不会处理分离的 parts，因此可以将其删除。

### NumberOfDetachedParts

从 MergeTree 表中分离出的 parts 总数。用户可以通过 `ALTER TABLE DETACH` 查询分离某个 part；如果某个 part 已损坏、异常或不再需要，服务器自身也可能将其分离。服务器不会处理 分离的 parts因此可以将其移除。

### 待处理变更总数

仍待执行的变更总数。

### 超过执行时长的待处理变更数量

等待应用变更的数据分区片段，其等待时间超过指定 `max_pending_mutations_execution_time_to_warn` 设置值的变更总数。

### 表数量

服务器上各数据库中表的总数之和，不包括无法包含 MergeTree 表的数据库。被排除的数据库引擎是那些即时生成表集合的引擎，例如 `Lazy`、`MySQL`、`PostgreSQL`、`SQlite`。

### NumberOfTablesSystem

服务器上 system 数据库中采用 MergeTree 家族表引擎存储的表总数。

### OSContextSwitches

主机系统发生的上下文切换总次数。这是一个系统级指标，统计的是主机上的所有进程，而不只是 clickhouse-server。

### OSCPUOverload

相对 CPU 缺口，计算方式为：等待 CPU 的线程数与正在使用 CPU 的线程数之比。如果该值大于零，说明服务器可从更多 CPU 资源中受益；如果显著大于零，服务器可能会失去响应。该指标会在异步指标两次更新之间持续累积。

### OSGuestNiceTime

在 Linux 内核控制下，当 guest 操作系统被设为较高优先级时，运行其虚拟 CPU 所花费时间的比率 (参见 `man procfs`) 。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。该指标与 ClickHouse 无关，但为保证完整性仍然保留。单个 CPU 核心的值位于区间 \[0..1]。所有 CPU 核心的值则是各核心数值之和，范围为 \[0..num cores]。

### OSGuestNiceTimeCPU

每个 CPU 核心为高优先级 guest 操作系统运行虚拟 CPU 所花费时间的比率，与 `OSGuestNiceTime` 相同，但不跨核心求和。键为 CPU 核心编号，每个核心的值位于 \[0..1] 区间内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSGuestNiceTimeNormalized

该值与 `OSGuestNiceTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，其值都会落在 \[0..1] 区间内。这样一来，即使集群中各服务器的核心数不一致，你也可以对该指标在多台服务器上的值求平均，仍然得到平均资源利用率指标。如果已指定，也可以用 Cgroup CPU 配额除以其周期后的结果来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSGuestTime

在 Linux 内核控制下，为 guest 操作系统运行虚拟 CPU 所耗时间的比率 (参见 `man procfs`) 。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。这个指标与 ClickHouse 无关，但为保证完整性仍予以保留。单个 CPU 核心的值位于区间 \[0..1] 内。所有 CPU 核心的值则按各核心求和计算，为 \[0..num cores]。

### OSGuestTimeCPU

每个 CPU 核心为 guest 操作系统运行虚拟 CPU 所花费的时间占比，与 `OSGuestTime` 相同，但不跨核心求和。键为 CPU 核心编号，每个核心的值位于区间 \[0..1] 内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSGuestTimeNormalized

该值与 `OSGuestTime` 类似，但会除以 CPU 核心数，因此无论核心数多少，结果都会落在 \[0..1] 区间内。这样一来，即使集群中各 server 的核心数不一致，你也可以对多个 server 上的这一指标求平均，仍然得到平均资源利用率指标。如果指定了 Cgroup CPU quota，则可使用其配额除以周期后的结果来代替实际 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSIdleTime

从操作系统内核的视角来看，CPU 核心处于空闲状态的时间占比 (即它甚至未准备好运行正在等待 IO 的进程) 。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。这不包括由于 CPU 内部原因导致 CPU 未被充分利用的时间 (例如内存加载、流水线停顿、分支预测错误、运行另一个 SMT 核心) 。单个 CPU 核心的值位于区间 \[0..1]。所有 CPU 核心的值则按各核心求和计算，范围为 \[0..num cores]。

### OSIdleTimeCPU

每个 CPU 核心的空闲时间占比，与 `OSIdleTime` 相同，但不对所有核心求和。键为 CPU 核心编号，每个核心的值位于区间 \[0..1]。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSIdleTimeNormalized

该值与 `OSIdleTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，结果都落在 \[0..1] 区间内。这样一来，即使集群中多台服务器的核心数分布不均，也可以对该指标值求平均，仍然得到平均资源利用率指标。如果已指定，也可以使用 Cgroup CPU 配额除以其周期所得的值来代替实际 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSInterrupts

主机上的中断总次数。这是一个系统级指标，涵盖主机上的所有进程，而不只是 clickhouse-server。

### OSIOWaitTime

当进程处于 IO 等待状态时，CPU 核心未执行代码，且操作系统内核也未在该 CPU 上运行任何其他进程，这段时间所占的比例。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。单个 CPU 核心的值位于区间 \[0..1]。所有 CPU 核心的值则是各核心值的总和，范围为 \[0..num cores]。

### OSIOWaitTimeCPU

每个 CPU 核心等待 IO 的时间占比，与 `OSIOWaitTime` 相同，但未跨核心求和。键为 CPU 核心编号，每个核心的值位于区间 \[0..1]。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSIOWaitTimeNormalized

该值与 `OSIOWaitTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，结果都会落在 \[0..1] 区间内。这样一来，即使集群中各服务器的核心数并不一致，你也可以对多台服务器上的该指标取平均值，同时仍然得到平均资源利用率指标。如果已指定，也可以用 Cgroup 的 CPU 配额 除以其 period 的结果来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSIrqTime

CPU 用于处理硬件中断请求的时间占比。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。该指标数值偏高可能表示硬件配置不当，或网络负载过高。单个 CPU 核心的值范围为 \[0..1]。所有 CPU 核心的值则是各核心值的总和，范围为 \[0..num cores]。

### OSIrqTimeCPU

每个 CPU 核心运行硬件中断请求所花费时间的比率，与 `OSIrqTime` 相同，但不跨核心求和。键为 CPU 核心编号，每个核心的值位于区间 \[0..1] 内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSIrqTimeNormalized

该值与 `OSIrqTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，结果都会落在 \[0..1] 区间内。这样一来，即使集群中多台服务器的核心数不一致，你也可以对该指标在这些服务器上的值取平均，仍然得到平均资源利用率指标。如果指定了 Cgroup CPU 配额，则可以用其除以周期后的结果来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### 操作系统可用内存

可供程序使用的内存量，以字节为单位。它与 `OSMemoryFreePlusCached` 指标非常接近。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSMemoryBuffers

OS 内核缓冲区占用的内存量，以字节为单位。该值通常应较小；如果数值较大，可能表明 OS 配置存在问题。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### OSMemoryCached

操作系统页缓存占用的内存量，以字节为单位。通常，几乎所有可用内存都会被操作系统页缓存占用，因此该指标值较高是正常且符合预期的。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSMemoryFreePlusCached

主机系统上空闲内存与操作系统页缓存内存的总量，单位为字节。这部分内存可供程序使用。该值应与 `OSMemoryAvailable` 非常接近。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### OSMemoryFreeWithoutCached

主机系统上的空闲内存量，单位为字节。其中不包括操作系统页缓存使用的内存 (单位同样为字节) 。页缓存中的内存也可供程序使用，因此这个指标的值可能会让人产生误解。建议改为查看 `OSMemoryAvailable` 指标。为方便起见，我们还提供了 `OSMemoryFreePlusCached` 指标，它应与 OSMemoryAvailable 比较接近。另请参见 [https://www.linuxatemyram.com/。这是一个系统级指标，包含主机上的所有进程，而不只是](https://www.linuxatemyram.com/。这是一个系统级指标，包含主机上的所有进程，而不只是) clickhouse-server。

### OSMemorySwapCached

swap 中同时已加载到 RAM 的内存量。生产系统应禁用 swap。如果该指标的值很大，则表示存在配置错误。这是一项系统级指标，涵盖主机上的所有进程，而不仅仅是 clickhouse-server。

### OSMemoryTotal

主机系统的内存总量，以字节为单位。

### OSNiceTime

CPU 核心以较高优先级运行用户态代码的时间占比。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。单个 CPU 核心的值位于区间 \[0..1]。所有 CPU 核心的值则是各核心值的总和，范围为 \[0..num cores]。

### OSNiceTimeCPU

每个 CPU 核心以较高优先级运行用户态代码的时间占比，与 `OSNiceTime` 相同，但不跨核心求和。键为 CPU 核心编号，每个核心的值位于 \[0..1] 区间内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSNiceTimeNormalized

该值与 `OSNiceTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，结果都落在 \[0..1] 区间内。这样一来，即使集群中各服务器的核心数并不一致，你也可以对多台服务器上的这一指标取平均值，并仍然得到平均资源利用率指标。如果有指定，也可以用 Cgroup CPU 配额 除以其 period 的结果来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSOpenFiles

主机上打开的文件总数。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### OSProcessesBlocked

因等待 I/O 完成而阻塞的线程数 (`man procfs`) 。这是一个系统级指标，涵盖主机上的所有进程，而不只是 clickhouse-server。

### OSProcessesCreated

创建的进程数。这是一个系统级指标，包含主机上的所有进程，而不只是 clickhouse-server。

### OSProcessesRunning

操作系统中处于可运行状态 (正在运行或已准备好运行) 的线程数量。这是一个系统级指标，涵盖主机上的所有进程，而不只是 clickhouse-server。

### OSSoftIrqTime

CPU 用于处理软件中断请求的时间占比。这是一个系统级指标，涵盖主机上的所有进程，而不只是 clickhouse-server。该指标数值较高，可能表明系统上运行的软件效率不高。单个 CPU 核心的值位于区间 \[0..1] 内。所有 CPU 核心的值则为各核心数值之和 \[0..num cores]。

### OSSoftIrqTimeCPU

每个 CPU 核心用于处理软件中断请求的时间占比，与 `OSSoftIrqTime` 相同，但不对各核心的值求和。键是 CPU 核心编号，每个核心的值都在 \[0..1] 范围内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSSoftIrqTimeNormalized

该值与 `OSSoftIrqTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，其度量值都会落在 \[0..1] 区间内。这样一来，即使集群中各服务器的核心数并不一致，也可以对多台服务器上的这一指标求平均，同时仍能得到平均资源利用率指标。如果已指定，也可以用 Cgroup CPU 配额除以其周期来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSStealTime

在虚拟化环境中运行时，CPU 被其他操作系统占用的时间比例。这是一个系统级指标，涵盖主机上的所有进程，而不只是 clickhouse-server。并非所有虚拟化环境都会提供这一指标，而且大多数都不会提供。单个 CPU 核心的值处于区间 \[0..1]。所有 CPU 核心的值为各核心数值之和，范围是 \[0..num cores]。

### OSStealTimeCPU

在虚拟化环境中运行时，每个 CPU 核心被其他操作系统占用的时间比例，与 `OSStealTime` 相同，但未对各核心求和。键为 CPU 核心编号，每个核心的值均在区间 \[0..1] 内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSStealTimeNormalized

该值与 `OSStealTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，结果都会落在 \[0..1] 区间内。这样一来，即使一个 集群 中各个 server 的核心数并不一致，你也可以对多台 server 上这一指标的值求平均，仍然得到平均资源利用率指标。如果已指定，则可以用 Cgroup 的 CPU quota 除以其 period 的结果来替代实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSSystemTime

CPU 核心运行 操作系统内核 (system) 代码的时间占比。这是一个系统级指标，涵盖主机上的所有进程，而不只是 clickhouse-server。单个 CPU 核心的值位于区间 \[0..1]。所有 CPU 核心的值则按求和计算，范围为 \[0..num cores]。

### OSSystemTimeCPU

每个 CPU 核心运行操作系统内核 (系统) 代码的时间占比，与 `OSSystemTime` 相同，但不对各核心的值求和。键是 CPU 核心编号，每个核心的值位于 \[0..1] 区间内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSSystemTimeNormalized

该值与 `OSSystemTime` 类似，但会除以 CPU 核心数，因此无论核心数量多少，其度量值都会落在 \[0..1] 区间内。这样一来，即使集群中各台服务器的核心数量并不一致，你仍然可以对多台服务器上的这一指标值求平均，并得到平均资源利用率指标。如果有指定，也可以使用 Cgroup CPU 配额除以其周期来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### OSThreadsRunnable

从操作系统内核调度器的视角看，处于“可运行”状态的线程总数。

### OSThreadsTotal

线程总数，即操作系统内核调度器所见的线程总数。

### OSUptime

主机服务器 (即运行 ClickHouse 的机器) 的运行时间，单位为秒。

### OSUserTime

CPU 核心处于运行用户态代码状态的时间占比。这是一个系统级指标，涵盖主机上的所有进程，而不仅仅是 clickhouse-server。它还包括 CPU 由于自身内部原因而未被充分利用的时间 (如内存加载、流水线停顿、分支预测错误、运行另一个 SMT 核心时) 。单个 CPU 核心的值位于区间 \[0..1]。所有 CPU 核心的值则是各核心数值之和，范围为 \[0..num cores]。

### OSUserTimeCPU

每个 CPU 核心运行用户态代码的时间占比，与 `OSUserTime` 相同，但不跨核心求和。键为 CPU 核心编号，每个核心的值在 \[0..1] 区间内。这是一个系统级指标，包含主机上的所有进程，而不仅仅是 clickhouse-server。

### OSUserTimeNormalized

该值与 `OSUserTime` 类似，但会除以 CPU 核心数，因此无论核心数多少，其值都落在 \[0..1] 区间内。这样一来，即使集群中多台服务器的核心数不一致，你也可以对该指标的值求平均，仍然得到平均资源利用率指标。如果有指定，也可以用 Cgroup CPU 配额除以其周期的结果来代替实际的 CPU 核心数；在这种情况下，该指标的值在某些时刻可能会超过 1。

### PageCacheMaxBytes

当前用户态页缓存的大小上限，单位为字节。

### PostgreSQLRejectedConnections

PostgreSQL 兼容协议的被拒绝连接数。

### PostgreSQLThreads

PostgreSQL 兼容协议服务器中的线程数。

### ProcessSignalQueueLimit

信号队列的总上限 (达到 ProcessSignalQueueSize 时，可能会出现 CANNOT\_CREATE\_TIMER 错误)

### ProcessSignalQueueSize

信号队列大小 (待处理信号和用于查询性能分析的计时器)

### PrometheusRejectedConnections

Prometheus 端点的被拒绝连接数。注意：Prometheus 端点也可通过常规的 HTTP/HTTPS 端口访问。

### PrometheusThreads

Prometheus 端点服务器中的线程数。注意：Prometheus 端点也可以通过常规的 HTTP/HTTPS 端口访问。

### PSI\_*type*\_*stall\_type*

自上次测量以来的停滞时间 (微秒) 。有关这些指标及其解读方式，请参见上游文档：[https://docs.kernel.org/accounting/psi.html](https://docs.kernel.org/accounting/psi.html)

### QueriesMemoryUsage

服务器上所有正在运行的查询当前使用的总内存，单位为字节。可用于将内存压力归因于并发查询负载。

### QueriesPeakMemoryUsage

`ProcessList` 中跟踪的所有用户的单用户查询内存峰值总和，单位为字节。每个用户的峰值都是该用户 memory tracker 的最高水位；当该用户没有正在运行的查询时，该值会重置。因此，这里表示的是当前正在跟踪的各用户峰值的聚合值，而不是服务器自启动以来所有查询的单一全局峰值。

### ReaderExecutorModeledCostMsPerRequestedMiB

Experimental ReaderExecutor 读取路径效率指标：在最近一个更新时间间隔内，实例范围内每 MiB 请求字节的建模成本 (毫秒) ——即 ProfileEvents ReaderExecutorModeledCostMicroseconds 与 ReaderExecutorDeliveredBytes 增量的比值。越低越好：带宽下限约为 20 (源数据读取正常时) ，缓存命中时趋近于 0，过度拉取和未完成的连接会使其升高。0 表示该时间间隔内没有 executor 读取操作。

### ReplicasMaxAbsoluteDelay

在复制表中，最新已复制的数据分区片段与最新的、仍待复制的数据分区片段之间的最大时间差 (以秒为单位) 。该值非常高通常表示某个副本中没有数据。

### ReplicasMaxInsertsInQueue

复制表队列中 (尚待复制) 的 INSERT 操作最大数量。

### ReplicasMaxMergesInQueue

所有复制表中队列内 (尚待执行) 的合并操作最大数量。

### ReplicasMaxQueueSize

所有复制表中队列的最大长度 (按操作数计算，如 get、merge) 。

### ReplicasMaxRelativeDelay

在复制表中，某个副本的延迟与同一表中延迟最低的最新副本之间的最大差值。

### ReplicasSumInsertsInQueue

所有 复制表 的队列中尚待复制的 INSERT 操作总数。

### ReplicasSumMergesInQueue

复制表中队列内 (尚未应用) 的 merge 操作总数。

### ReplicasSumQueueSize

所有复制表的队列总大小 (以 get、merge 等操作的数量计) 。

### Silk*counter\_name*

silk fiber runtime 中同名底层计数器的值，自 fiber scheduler 初始化以来持续累计。名称中包含 Time 的计数器以纳秒为单位。

### TCPRejectedConnections

TCP 协议 (不使用 TLS) 的被拒绝连接数。

### TCPSecureRejectedConnections

启用 TLS 的 TCP 协议被拒绝的连接数。

### TCPSecureThreads

启用 TLS 的 TCP 协议服务器中的线程数。

### TCPThreads

TCP 协议 (不使用 TLS) 的服务器线程数。

### 温度

每个传感器上报的温度，单位为 ℃。传感器可能会返回不合理的值。键为热区编号 (来源：`/sys/class/thermal`) ，或硬件监控器及其传感器的名称 (来源：`/sys/class/hwmon`) 。

### MergeTree 家族中所有表的总字节数

MergeTree 家族中所有表存储的总字节数 (压缩后，包含数据和索引) 。

### TotalBytesOfMergeTreeTablesSystem

存储在系统数据库中 MergeTree 家族各表内的总字节数 (已压缩，包含数据和索引) 。

### TotalIndexGranularityBytesInMemory

索引粒度占用的内存总量 (单位为字节，仅统计活跃的 parts) 。

### 内存中已分配的索引粒度总字节数

为索引粒度预留的内存总量 (以字节为单位)  (仅计入活跃 parts) 。

### MergeTree 家族表的数据分区片段总数

MergeTree 家族中所有表的数据分区片段总数。数值超过 10 000 会对服务器启动时间产生负面影响，也可能表明分区键选择不合理。

### 系统数据库中 MergeTree 家族表的数据分区片段总数

系统数据库中 MergeTree 家族表的数据分区片段总数。

### TotalPrimaryKeyBytesInMemory

主键值使用的内存总量 (以字节计，仅考虑活跃 parts) 。

### TotalPrimaryKeyBytesInMemoryAllocated

为主键值预留的内存总量 (以字节为单位，仅统计活动 parts) 。

### TotalProjectionIndexGranularityBytesInMemory

投影索引粒度占用的内存总量 (以字节为单位，仅统计活跃 parts) 。

### TotalProjectionIndexGranularityBytesInMemoryAllocated

为投影索引粒度预留的内存总量 (以字节为单位，仅计入活跃的 parts) 。

### TotalProjectionPrimaryKeyBytesInMemory

投影主键值占用的内存总量 (以字节为单位，仅统计活跃 parts) 。

### TotalProjectionPrimaryKeyBytesInMemoryAllocated

为投影主键值预留的内存总量 (以字节为单位，仅统计活跃 parts) 。

### TotalRowsOfMergeTreeTables

MergeTree 家族中所有表存储的总行数 (记录数) 。

### TotalRowsOfMergeTreeTablesSystem

存储在系统数据库中 MergeTree 家族各表内的行 (记录) 总数。

### TotalUncompressedBytesOfMergeTreeTables

所有 MergeTree 家族表中存储的未压缩字节总量，以分片校验和报告的数据为准。它与 `system.tables` 中的 `total_bytes_uncompressed` 列来源相同，但不包括以未压缩形式存储的文件，例如标记和主键索引。

### TotalUncompressedBytesOfMergeTreeTablesSystem

存储在系统数据库中 MergeTree 家族表内的未压缩字节总量，以分片校验和报告为准。它与 `system.tables` 中 `total_bytes_uncompressed` 列的数据来源相同，且不包括以未压缩形式存储的文件，例如标记和主键索引。

### TrackedMemory

ClickHouse 跟踪的内存 (应与 MemoryTracking 指标相等) ，单位为字节。

### UntrackedMemory

尚未汇总到 TrackedMemory 的近期内存分配和释放所对应的各线程缓冲区之和。

### 运行时间

服务器的运行时间，以秒为单位。包括服务器在开始接受连接之前的初始化时间。

### VMMaxMapCount

进程可拥有的最大内存映射数 (/proc/sys/vm/max\_map\_count) 。

### VMNumMaps

进程当前的内存映射数量 (`/proc/self/maps`) 。如果该值接近最大值 (VMMaxMapCount) ，应提高 /etc/sysctl.conf 中 vm.max\_map\_count 的上限。

### ZooKeeperClientLastZXIDSeen

当前 ZooKeeper 客户端会话所看到的最后一个 ZXID。随着客户端从 ZooKeeper 观察到事务，此值会单调递增。

## 列

* `metric` ([String](/zh/reference/data-types/string)) — 指标名称。
* `value` ([Float64](/zh/reference/data-types/float)) — 指标值。对于键值指标 (按 CPU 核心、块设备、磁盘等细分) ，该值为非数字，实际值位于 `key_values` 列中。
* `key_values` ([Map(LowCardinality(String), Float64)](/zh/reference/data-types/map)) — 键值指标的值，例如以 CPU 核心编号或块设备名称为键。标量指标则为空。
* `description` ([String](/zh/reference/data-types/string)) — 指标说明。

**别名：**

* `name` — `metric` 的别名。

## 示例

```sql theme={null}
SELECT metric, value, key_values
FROM system.asynchronous_metrics
WHERE metric IN ('MemoryResident', 'OSUserTime', 'DiskTotal', 'BlockReadBytes', 'NetworkReceiveBytes')
ORDER BY metric
```

```text theme={null}
┌─metric──────────────┬─────────────value─┬─key_values──────────────────────────────────────┐
│ BlockReadBytes      │               nan │ {'nvme0n1':67420160}                            │
│ DiskTotal           │               nan │ {'backups':34359738368,'default':5199475388416} │
│ MemoryResident      │         970743808 │ {}                                              │
│ NetworkReceiveBytes │               nan │ {'docker0':0,'ens66':334554363}                 │
│ OSUserTime          │ 32.11807291562506 │ {}                                              │
└─────────────────────┴───────────────────┴─────────────────────────────────────────────────┘
```

可以使用 Map 下标提取键值指标中的单个实体：

```sql theme={null}
SELECT key_values['default'] AS default_disk_total
FROM system.asynchronous_metrics
WHERE metric = 'DiskTotal'
```

## 另请参见

* [监控](/zh/guides/oss/deployment-and-scaling/monitoring/monitoring) — ClickHouse 监控的基础概念。
* [system.metrics](/zh/reference/system-tables/metrics) — 包含即时计算得到的指标。
* [system.events](/zh/reference/system-tables/events) — 包含若干已发生的事件。
* [system.metric\_log](/zh/reference/system-tables/metric_log) — 包含来自表 `system.metrics` 和 `system.events` 的指标值历史记录。
