如何解读perf工具输出?以page-faults的(99.99%)为例
解释perf输出中page-faults后的(99.99%)含义
那个括号里的百分比是事件的采样覆盖占比,具体来说:
- 当perf同时追踪多个性能事件时,CPU的硬件性能计数器数量有限,无法同时监控所有事件,因此会采用多路复用(multiplexing)机制,在不同事件之间切换采样。每个事件后的百分比,就是该事件被启用监控的时间占总 profiling 时长的比例。
- 对于
page-faults这类软件事件,它不是通过硬件计数器采样,而是由内核直接记录每次页错误的发生,不需要参与多路复用。因此perf可以全程持续统计它,所以覆盖占比接近100%(这里是99.99%),说明几乎所有的页错误事件都被完整捕获,数据可信度极高。 - 反观其他硬件相关事件(比如
cache-references、cycles),它们依赖硬件计数器,需要和其他事件共享资源,因此覆盖占比通常在50%左右,意味着perf大约有一半时间在追踪该事件。
内容的提问来源于stack exchange,提问作者Bostonian
相关产品推荐
相关产品推荐

