---
title: 指标解释
description: "- IPC（Instructions Per Cycle）：每个时钟周期执行的指令数，衡量CPU执行效率。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/profiler/profiler/KunpengDevKitCli_0254.html
sourcePath: /source/zh/kunpengdevps/profiler/profiler/KunpengDevKitCli_0254.html
indexId: 061698ba15b2fdb0b3a51c657c3395276fcd6321aee94cfa0b12ac348eadf63b68
---
# 指标解释

#### CPU Metrics-Common Microarchitecture Metrics（通用微架构指标）

- IPC（Instructions Per Cycle）：每个时钟周期执行的指令数，衡量CPU执行效率。
- INSTRUCTIONS（指令数）：执行的总指令数量，反映CPU的指令处理吞吐量。
- MPKI（Misses Per Kilo Instructions）：最后一级缓存每千条指令产生的缓存缺失数，数值越低缓存利用效率越高。
- BPKI（Branch Misses Per Kilo Instructions）：每千条指令的分支预测失败数，数值越低分支预测效率越高。
- L1D MPKI（L1数据缓存每千条指令缺失数）：一级数据缓存每千条指令的缓存未命中数。
- L1I MPKI（L1指令缓存每千条指令缺失数）：一级指令缓存每千条指令的缓存未命中数。
- L2D MPKI（L2数据缓存每千条指令缺失数）：二级数据缓存每千条指令的缓存未命中数。
- L2I MPKI（L2指令缓存每千条指令缺失数）：二级指令缓存每千条指令的缓存未命中数。
- DTLB MPKI（数据TLB每千条指令缺失数）：数据地址转换后备缓冲器的每千条指令缺失数，TLB负责虚拟地址到物理地址的快速转换，DTLB缺失会触发页表遍历，增加数据访问延迟。
- ITLB MPKI（指令TLB每千条指令缺失数）：指令地址转换后备缓冲器的每千条指令缺失数，ITLB缺失会导致指令地址转换延迟，影响前端取指。
- CPU-NUM：参与统计的CPU核数量，用于说明性能数据的统计范围和并行规模。


#### CPU Metrics-Topdown（微架构指标）

- Retiring（指令完成率）：成功执行并提交的指令占总指令的比例，反映CPU有效执行效率。
- Frontend Bound（前端瓶颈率）：CPU前端（取指和解码）无法及时向后端提供指令而造成的性能瓶颈比例。

  - Fetch Latency Bound（取指延迟瓶颈率）：由于指令缓存未命中、ITLB未命中、分支目标获取延迟等原因，导致前端在取指阶段发生等待的时间占比。
  - Fetch Bandwidth Bound（取指带宽瓶颈率）：前端取指或解码带宽不足（如每周期可取指/解码条数受限），无法满足后端需求而造成的性能损耗占比。
- Bad Speculation（错误推测率）：由于分支预测错误、错误路径取指、推测执行失败等，导致已执行指令被清空（pipeline flush）的性能损耗占比。

  - Branch Mispredicts（分支预测失败率）：由于分支预测错误引起的流水线清空和重执行所消耗的周期占比。
  - Machine Clears（机器清空率）：由于异常、内存顺序冲突、资源冲突等非分支原因，触发的流水线清空所造成的性能损耗占比。
- Backend Bound（后端瓶颈率）：指令已成功送入后端，但由于执行资源或数据访问受限，无法及时完成执行而造成的性能损耗占比。
- Core Bound（核心计算瓶颈率）：由于执行单元（ALU、FPU、向量单元、端口冲突等）资源不足，导致指令在计算阶段受限的性能损耗占比。
- Memory Bound（内存访问瓶颈率）：由于数据缓存（L1/L2/L3）未命中、TLB未命中或主存访问延迟，导致后端等待数据而产生的性能损耗占比。
- CPU-NUM：参与统计的CPU核数量，用于说明性能数据的统计范围和并行规模。


#### CPU Metrics-OS Metrics（操作系统指标）

- context-switches（上下文切换数）：CPU在不同进程/线程间的切换次数，反映系统进程调度频率。
- migrations（进程迁移数）：进程在不同CPU核心/NUMA节点间的迁移次数，反映系统负载均衡策略执行情况。
- page-faults（缺页中断数）：CPU访问的内存页不在物理内存中触发的中断次数，分为软缺页（内存中存在）和硬缺页（需从磁盘加载）。
- CPU-NUM：参与统计的CPU核心数量，用于说明性能数据的统计范围和并行规模。


#### CPU Metrics-INSTRUCTION（指令类型占比指标）

- Memory(%)：（内存访问指令百分比）与内存地址操作、数据存取相关的指令占总指令的百分比，反映业务的数据访问密集度。

  - Load(%)（加载指令运算百分比）：CPU或存储控制器的读取请求占用率，反映读取操作的资源消耗程度。
  - Store(%)（存储指令运算百分比）：CPU或存储控制器的写入请求占用率，反映写入操作的资源消耗程度。
- Scalar(%)（标量指令运算百分比）：处理器中执行的标量指令占总指令数的百分比。标量指令一次只处理一个数据元素，是相对于向量指令而言的。

  - Integer(%)（整数指令运算百分比）：处理器中执行的整数类型指令占总指令的百分比。这类指令处理整数（定点数）运算，如加减、位操作等，反映业务的整数计算密集度。
  - Floating Point(%)（浮点指令运算百分比）：处理器中执行的浮点类型指令占总指令的百分比，这类指令处理浮点数（小数）运算，反映业务的浮点计算密集度。
- Vector(%)（向量指令运算百分比）：向量指令运算占总指令数的百分比。向量指令可同时对一组数据（多个元素）执行相同的操作，以实现数据级并行。

  - Advanced SIMD(%)（高级SIMD指令运算百分比）：使用ARM NEON技术（即高级SIMD）的向量指令占总指令的百分比。
  - SVE(+loads/stores)(%)（SVE指令运算百分比）：使用ARM可扩展向量扩展的向量指令占总指令数的百分比。

  - SME(retired)(%)（SME指令执行百分比）：处理器已成功完成（退休）的、使用ARM可扩展矩阵扩展的指令占总指令数的百分比。

    - Integer(%)：（SME整数指令运算百分比）在SME指令中，整数型矩阵运算指令（如整数乘加）占总指令数的百分比。
    - Floating Point(%)（SME浮点指令运算百分比）：在SME指令中，浮点型矩阵运算指令（如浮点乘加）占总指令数的百分比。
- Crypto(%)（加密指令运算百分比）：CPU硬件加密指令（如AES、SHA、RSA）占总指令的百分比，反映业务的加密解密密集度。
- Branches(%)（分支指令运算百分比）：条件分支、无条件分支、函数调用等分支指令占总指令的百分比，反映业务的指令流复杂度。

  - Immediate(%)（立即数指令运算百分比）：处理器中执行的包含立即数的指令所占的百分比。立即数是直接嵌入在指令中的常量数值（而非从寄存器/ 内存读取），比如 “将数值 5 加载到寄存器” 的指令，这类指令能减少内存访问，提升执行效率。
  - Return(%)（返回指令运算百分比）：处理器中执行的函数返回指令所占的百分比。这类指令用于从函数调用中返回，恢复程序执行的上下文（如恢复栈指针、跳回调用点），是函数调用机制的核心指令。
  - Indirect(%)（间接指令运算百分比）：处理器中执行的间接指令所占的百分比。间接指令指目标地址不直接固定在指令中，而是通过寄存器/内存地址间接获取的指令（如间接跳转、间接调用），常见于函数指针、虚函数调用等场景。
- Barriers(%)（屏障指令运算百分比）：保证内存访问顺序的屏障指令占总指令的百分比，反映多线程/多核业务的内存同步需求。

  - Instruction Synchronization(%)（指令同步相关指令百分比）：处理器中执行的指令同步类指令所占的百分比。这类指令用于确保指令流的同步执行，比如刷新指令流水线、同步多核处理器的指令执行状态，防止指令执行乱序导致的逻辑错误。
  - Data Synchronization(%)（数据同步相关指令百分比）：处理器中执行的数据同步类指令所占的百分比。这类指令用于控制内存数据的可见性和一致性，比如刷新数据缓存、同步多核之间的内存数据访问，常见于多线程共享数据的场景。
  - Data Memory(%)（数据内存访问相关指令百分比）：处理器中执行的访问数据内存的指令所占的百分比。这类指令包括从内存读取数据到寄存器、将寄存器数据写入内存，是处理器与内存交互的核心指令，其占比直接反映程序的内存访问密集程度。
- Not Retired(%)（未提交指令百分比）：处理器中执行后未成功提交（Retire）的指令所占的百分比。指令“提交” 表示其执行结果被最终确认并写入架构状态（如寄存器、内存）；未提交的原因包括指令执行失败、分支预测错误导致的指令回滚、缓存未命中中断等，该指标反映处理器指令执行的无效开销。


#### CPU Metrics-Load_avg（平均负载指标）

- recent 1 min（1分钟平均负载）：表示最近1分钟内的系统平均负载，反映短期系统负载变化，对突发流量/任务敏感。
- recent 5 min（5分钟平均负载）：表示最近5分钟内的系统平均负载，反映中期系统负载趋势，过滤短期突发波动。
- recent 15 min（15分钟平均负载）：表示最近15分钟内的系统平均负载，反映长期系统负载状态，用于判断系统负载是否为持续性过载。


#### CPU Metrics-Softirqs（软中断指标）

- NET_TX/s（网络发送软中断/秒）：处理网络数据包发送的软中断每秒触发次数，反映网络发送的内核处理压力。
- NET_RX/s（网络接收软中断/秒）：处理网络数据包接收的软中断每秒触发次数，反映网络接收的内核处理压力。
- BLOCK/s（块设备软中断/秒）：处理磁盘/块设备I/O的软中断每秒触发次数，反映块设备I/O的内核处理压力。
- SCHED/s（调度软中断/秒）：处理进程/线程调度的软中断每秒触发次数，反映系统内核调度的压力。


#### CPU Metrics-Interrupts（中断指标）

- IRQ number：IRQ number（Linux Virtual IRQ Number）系统中断编号。
- Device Type：中断对应设备类型，只支持PCI中断的类型关联。
- Device Numa：中断对应设备所在NUMA节点，只支持PCI中断的节点关联。
- IRQ/s：每秒的中断数量，如果中断过高，建议使用中断聚合降低性能损耗，或者使用绑核提高中断处理效率。
- Nodex/s：每秒在节点上的中断数量，使用|分隔，按照节点号排序。
- Local/s：每秒本地节点的中断数量。
- Cross-die/s：每秒跨Die的中断数量。
- Cross-chip/s：每秒跨片的中断数量。


#### CPU Metrics-CPU_stat（CPU状态指标）

- ctx_switches/s（上下文切换/秒）：单CPU核每秒的进程/线程上下文切换次数。
- interrupts/s（硬中断/秒）：单CPU核每秒接收到的硬件中断次数，由外设（如网卡、磁盘、时钟）触发，反映硬件设备的中断压力。
- soft_interrupts/s（软中断/秒）：单CPU核每秒处理的软中断次数，是衡量系统内核异步任务负载的重要指标。
- cswch/s（自愿上下文切换次数）：进程每秒发生的自愿上下文切换次数，表示进程因主动让出CPU（如等待I/O、sleep）而切换执行上下文的频率，反映进程的阻塞与调度行为。
- nvcswch/s（非自愿上下文切换次数）：进程每秒发生的非自愿上下文切换次数，表示进程因时间片耗尽或被高优先级任务抢占而发生的上下文切换频率，反映CPU竞争和调度压力。


#### CPU Metrics-CPU_percent（CPU使用率指标）

- %user（用户态使用率）：CPU执行用户态程序（应用程序）的时间占比，反映应用程序的CPU消耗。
- %nice（低优先级用户态使用率）：CPU执行低优先级用户态程序的时间占比，反映低优先级应用的CPU消耗。
- %system（内核态使用率）：CPU执行内核态程序（系统调用、内核任务）的时间占比，反映操作系统内核的CPU消耗。
- %idle（空闲率）：CPU处于空闲状态，无任何任务执行的时间占比，是判断CPU整体负载的核心指标。
- %iowait（IO等待率）：CPU因等待磁盘/块设备I/O完成而空闲的时间占比，反映系统IO瓶颈导致的CPU空闲。
- %irq（硬中断处理率）：CPU处理硬件中断的时间占比，反映硬件中断的CPU消耗。
- %softirq（软中断处理率）：CPU处理软中断的时间占比，反映软中断的CPU消耗。
- %steal（虚拟化窃取率）：虚拟化环境中，CPU被宿主机调度给其他虚拟机的时间占比，反映虚拟化环境的CPU资源竞争。
- %guest（客户机态使用率）：虚拟化环境中，CPU执行虚拟机客户机态程序的时间占比。
- %guest_nice（低优先级客户机态使用率）：虚拟化环境中，CPU执行虚拟机低优先级客户机态程序的时间占比。


#### CPU Metrics-CPU_percent（进程模式下的CPU使用率指标）

- %usr（用户态使用率）：CPU执行用户态程序（应用代码、不含系统调用）的时间占比，反映进程本身的计算开销。
- %system（内核态使用率）：CPU执行内核态程序（系统调用、内核任务）的时间占比，反映进程引发的操作系统内核CPU消耗。
- %wait（I/O等待占比）：CPU因等待磁盘、网络等I/O操作完成而处于空闲等待状态的时间占比，反映进程受I/O瓶颈影响的程度。
- %CPU（总CPU使用率）：进程占用CPU的总体比例，通常为用户态和内核态使用率的综合值，反映进程对CPU资源的总体消耗水平。


#### Memory Access Metrics-DDRC（DDRC指标）

- DDRC DEVICE（DDRC设备编号）：DDRC（double data rate controller）所属的硬件设备编号，用于定位具体的硬件设备。
- NUMA（NUMA节点）：DDRC所属的NUMA节点编号，反映内存与CPU的NUMA拓扑关系。
- ddrc_rd_bw（内存控制器读带宽）：DDRC的实际读带宽（通常为MB/s），反映内存读数据的传输速率。
- ddrc_wr_bw（内存控制器写带宽）：DDRC的实际写带宽（通常为MB/s），反映内存写数据的传输速率。


#### Memory Access Metrics-HHA（HHA指标）

- HHA DEVICE（HHA设备编号）：HHA（HCCS Home Agent）所属的硬件设备编号，用于定位具体的硬件。
- NUMA（NUMA节点）：HHA所属的NUMA节点编号，反映该硬件的NUMA拓扑关系。
- rx_ops_num（接收操作数）：统计HHA接收到的所有操作的数量。
- rx_outer（外部接收数据量）：统计HHA从其他socket接收到的所有操作的数量。
- rx_sccl（内部接收数据量）：统计HHA从同一socket中的其他SCCL接收到的所有操作的数量。


#### Memory Access Metrics-Miss Latency（Miss时延指标）

- latency（延迟）：呈现访存时延，通过cycles（CPU时钟周期数）衡量时延长短。L2 Miss Latency，即L2未命中访问L3的时延；L3 Miss Latency，即L3未命中访问DDR的时延。
- cycles_max（最大周期数）：采集到的访问记录中时延最大的数据。
- cycles_min（最小周期数）：采集到的访问记录中时延最小的数据。
- cycles_avg（平均周期数）：采集到的访问记录中时延平均的数据。主要关注平均值，用于衡量workload在L3以及DDR上的访问时延情况。


#### Memory Access Metrics-Mem_info（物理内存指标）

- total(GB)（总内存/GB）：系统物理内存的总容量，为硬件固定值，是评估内存使用量的基准。
- available(GB)（可用内存/GB）：系统当前可立即分配给应用程序的内存容量（含空闲、可回收缓存），是判断内存实际可用量的核心指标。
- %percent（内存使用率）：系统已使用内存占总内存的百分比，是判断内存整体负载的核心指标。
- used(GB)（已用内存/GB）：系统当前已分配使用的物理内存容量（含应用、内核、缓存等）。
- free(GB)（空闲内存/GB）：系统当前完全未分配的物理内存容量，该值偏低为正常现象（因为缓存会占用）。
- active(GB)（活跃内存/GB）：当前正在被应用/内核使用、短期内不会被回收的内存容量。
- inactive(GB)（非活跃内存/GB）：曾经使用过、目前闲置但可被系统回收的内存容量。
- buffers(GB)（缓冲区内存/GB）：内核用于块设备I/O数据缓冲的内存容量。
- cached(GB)（页缓存内存/GB）：内核用于文件系统数据缓存的内存容量，是系统利用空闲内存提升IO性能的核心。
- shared(GB)（共享内存/GB）：多个进程/线程共享使用的内存容量（如共享库、进程间通信）。
- slab(GB)（内核slab内存/GB）：内核用于分配小内存对象的缓存内存容量。
- RSS(GB)（常驻内存大小）：进程实际占用的物理内存大小，不包含已被换出到磁盘的部分，反映进程当前对物理内存的真实消耗。
- VSZ(GB)（虚拟内存大小）：进程可见的虚拟地址空间总量，包括代码段、数据段、共享库和未实际分配的内存，反映进程的虚拟内存规模。
- %MEM（内存使用率）：进程占系统总物理内存的百分比，反映该进程在整体内存资源中的占用比例。


#### Memory Access Metrics-Swap_mem（交换分区内存指标）

- total(GB)（交换分区总容量/GB）：系统交换分区的总容量，为系统配置固定值，是评估交换空间的基准。
- used(GB)（已用交换分区/GB）：当前已使用的交换分区容量，持续增长表示系统物理内存紧张。
- free(GB)（空闲交换分区/GB）：当前未使用的交换分区容量。
- %percent（交换分区使用率/GB）：已用交换分区占总容量的百分比。
- sin(GB)（交换分区读取量/GB）：从磁盘交换分区读取物理内存的数据量，反映物理内存不足时的读取压力。
- sout(GB)（交换分区写入量/GB）：从物理内存写入磁盘交换分区的数据量，反映物理内存不足时的写入压力。
- PSS(GB)（比例集大小/GB）：将共享内存按进程数均分后计算得到的内存占用大小，更准确反映进程对物理内存的实际责任份额。
- USS(GB)（独占内存大小/GB）：仅被该进程独占使用的内存大小，不包含任何共享内存，反映进程不可被其他进程复用的内存消耗。
- Swap(GB)（交换内存使用量/GB）：进程被换出到交换分区（Swap）的内存大小，反映进程对磁盘交换空间的使用情况及潜在内存压力。


#### IO Metrics-PCIe（PCIe指标）

- PCIE DEVICE（PCIe设备编号）：PCIe总线连接的外设硬件设备编号，用于定位具体的PCIe外设。
- rx_rd_bw（PCIe读带宽）：指CPU到设备（CPU-to-Device）的带宽（MB/s），从CPU端来看表现为写入带宽。
- rx_wr_bw（PCIe写带宽）：指设备到CPU（Device-to-CPU）的带宽（MB/s），从CPU端来看表现为读取带宽。


#### IO Metrics-PA（PA指标）

- PA DEVICE（PA设备编号）：PA（Protocol Adapter，协议适配器）总线所属的硬件设备编号，用于定位具体的PA设备。
- PA2Ring_bw（PA到Ring总线带宽）：PA总线向Ring总线传输数据的带宽（MB/s），反映PA到Ring的单向数据传输能力。PA2Ring可以理解为Device to Host流量，或者跨片流量（Inbound）。
- PA2Ring_linkX_bw（PA到Ring某链路带宽）：PA总线到Ring总线某条具体链路的传输带宽（带宽为MB/s，X为链路编号），是PA2Ring_bw的链路级拆解。
- Ring2PA_bw（Ring到PA总线带宽）：Ring总线向PA总线传输数据的带宽（MB/s），反映Ring到PA的单向数据传输能力。Ring2PA可以理解为Host to Device流量，或者跨片流量（Outbound）。
- Ring2PA_linkX_bw（Ring到PA某链路带宽）：Ring总线到PA总线某条具体链路的传输带宽（带宽为MB/s，X为链路编号），是Ring2PA_bw的链路级拆解。
- Ring2PAs（Ring到所有PA总线总带宽）：Ring总线向系统中所有PA总线传输数据的总带宽（MB/s），反映Ring总线的整体对外传输能力。


#### IO Metrics-IO_info（磁盘I/O指标）

- device（块设备名）：块设备的系统标识名（如sda、nvme0n1），用于定位具体的磁盘/块设备。
- tps（每秒IO操作数）：块设备每秒完成的IO操作次数（含读、写），反映设备的IO操作频率。
- rkB/s（每秒读数据量/千字节）：块设备每秒从磁盘读取的数据量，反映设备的读吞吐量。
- wkB/s（每秒写数据量/千字节）：块设备每秒向磁盘写入的数据量，反映设备的写吞吐量。
- dkB/s（每秒丢弃数据量/千字节）：块设备每秒从磁盘丢弃的数据量，反映设备的丢弃操作吞吐量。
- areq-sz（平均IO请求大小/千字节）：块设备处理的单个IO请求的平均数据大小，反映业务的IO请求特征。
- aqu-sz（平均IO请求队列长度）：块设备IO请求队列中的平均等待请求数，反映设备的IO请求排队压力。
- await（平均IO响应时间/毫秒）：块设备处理单个IO请求的平均总时间（含排队、实际处理），反映IO请求的整体响应延迟。
- %util（设备利用率）：块设备处于忙状态的时间占比，是判断设备是否满载的核心指标。
- kB_rd/s（每秒读数据量/千字节）：块设备每秒从磁盘读取的数据量（KB/s），反映设备的读吞吐量。
- kB_wr/s（每秒写数据量/千字节）：块设备每秒向磁盘写入的数据量（KB/s），反映设备的写吞吐量。
- kB_ccwr/s（取消写入速率/千字节）：进程每秒被内核取消或延迟的写入数据量（KB/s），通常与页缓存回写策略有关，反映写I/O的缓冲与合并情况。


#### Net Metrics-Net_info（网络I/O指标）

- IFACE（网络接口名）：网络接口的系统标识名（如eth0、ens33），用于定位具体的网卡接口。
- rxpck/s（每秒接收数据包数）：网络接口每秒接收的网络数据包数量，反映网络接收的包处理压力。
- txpck/s（每秒发送数据包数）：网络接口每秒发送的网络数据包数量，反映网络发送的包处理压力。
- rxkB/s（每秒接收数据量/千字节）：网络接口每秒接收的网络数据量，反映网络接收的带宽压力。
- txkB/s（每秒发送数据量/千字节）：网络接口每秒发送的网络数据量，反映网络发送的带宽压力。
- rxcmp/s（每秒接收压缩包数）：网络接口每秒接收的压缩网络数据包数量，反映网络接收的压缩包处理压力。
- txcmp/s（每秒发送压缩包数）：网络接口每秒发送的压缩网络数据包数量，反映网络发送的压缩包处理压力。
- rxmcst/s（每秒接收组播包数）：网络接口每秒接收的组播网络数据包数量，反映网络组播的包处理压力。
- %ifutil（网络接口利用率）：网络接口的实际传输带宽占标称带宽的百分比，是判断网络接口是否满载的核心指标。


#### Net Metrics-UB-URMA（灵衢URMA指标）

- chip_id：性能数据所属的物理芯片编号。
- die_id：性能数据所属的CPU Die编号。
- port_id：性能数据所属的端口编号。
- ub_umoc_ctph_cnt(TX)：URMA每秒CTPH发送报文数。
- ub_umoc_ctph_cnt(RX)：URMA每秒CTPH接收报文数。
- ub_umoc_ntph_cnt(TX)：URMA每秒非CTPH发送报文数。
- ub_umoc_ntph_cnt(RX)：URMA每秒非CTPH接收报文数。


#### Net Metrics-UB-Memory（灵衢内存指标）

- chip_id：性能数据所属的物理芯片编号。
- die_id：性能数据所属的CPU Die编号。
- port_id：性能数据所属的端口编号。
- wr_traffic(pkt/s)：每秒写内存报文数。
- rd_traffic(pkt/s)：每秒读内存报文数。
- sum_traffic(pkt/s)：每秒读写内存总报文数。
- wr_pld_avg_len：平均每个写命令的有效载荷长度。
- rd_pld_avg_len：平均每个读命令的有效载荷长度。
- pld_avg_len：平均每个读写命令的有效载荷长度。
- wr_delayed(ns)：发送写命令到首次响应的延迟。
- rd_delayed(ns)：发送读命令到首次响应的延迟。
