1. perf bench 如何对内核子系统进行基准测试?
如何使用 perf bench 对内核子系统进行基准测试?它支持哪些子系统,结果如何解读,适合在哪些场景下使用?
- perf bench 支持的子系统(mem、sched、futex、epoll、syscall 等)
- 基准的运行方式与结果解读
- 基准测试在版本对比与调优验证中的适用场景
perf bench 是 perf 工具集内置的微观基准测试工具,用于对内核各子系统进行标准化压测,支持的子系统包括 mem(内存拷贝、分配)、sched(调度器)、futex(快速用户态互斥锁)、epoll(事件轮询)、syscall(系统调用)、ringbuffer 等。常用用法如 perf bench mem memcpy 测试内存拷贝带宽、perf bench sched pipe 测试进程间管道调度切换开销、perf bench futex hash 测试锁竞争吞吐,perf bench list 可列出全部可用基准及其参数。
它的价值在于"可复现、可对比":通过固定场景、固定次数重复测量输出吞吐量或单次操作耗时,适合在硬件升级、内核版本变更、内核参数调优前后做横向对比,量化验证优化效果。但注意 perf bench 是微观基准,测的是内核原语在隔离条件下的表现,不能替代应用层压测(如 wrk、sysbench),真实业务收益还需结合端到端测试确认。
本题考察对内核级基准测试工具的体系化认知。回答要点是"子系统清单 + 运行方式 + 结果解读 + 适用边界"四层:先列举支持的子系统,再说明如何运行与读取输出,最后强调其适用场景是版本/配置对比而非整体性能评估,体现对工具定位的准确理解。
perf bench list # 列出所有可用基准
perf bench mem memcpy -l 100 # 内存拷贝基准,循环 100 次
perf bench sched pipe -l 100000 # 调度 pipe 基准,迭代 100000 次
perf bench futex hash -t 8 # 8 线程 futex 哈希基准