Perf在Linux程序性能评估中的应用

Perf在Linux程序性能评估中的应用

ID:36612205

大小:1.99 MB

页数:48页

时间:2019-05-12

Perf在Linux程序性能评估中的应用_第1页
Perf在Linux程序性能评估中的应用_第2页
Perf在Linux程序性能评估中的应用_第3页
Perf在Linux程序性能评估中的应用_第4页
Perf在Linux程序性能评估中的应用_第5页
资源描述:

《Perf在Linux程序性能评估中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Perf在Linux程序性能评估中的应用承刚核心系统部内核组讲师介绍页面•核心系统部-内核组-承刚•淘宝新同学,在内核组从事Perf与调度器相关的工作。•如果同学们在Perf使用中有任何疑问,欢迎与我沟通。如果发现了Bug,更加欢迎与我沟通。系列课程介绍页面•关于Perf的系列课程《Perf在Linux程序性能评估中的应用》《LinuxPerf工具深入剖析》课程目标与目标学员页•面向学员:对Linux程序的性能评估感兴趣的同学•课程目标:–使同学们了解Perf的基本原理–通过实例演示,使同学们了解Perf的

2、功能和基本使用方法课程大纲页1.Perf简介2.Perf原理3.Perf的使用方法perflistperfstatperftopperfrecordperfreportTracepointperfschedperftimechartperfscriptPerf简介程序的系统级性能调优•算法优化:空间复杂度时间复杂度•代码优化:提高执行速度减少内存占用之后我们还能做些什么?系统级优化•Cache丢失率评估-->减少内存访问次数更加有效地•IPC评估-->提高CPU利用率利用硬件与OS资源•上下文切换次数评估-->

3、降低OS开销•PageFault次数评估-->减少页面交换Perf的功能•系统级性能分析的利器•upstream内核的一部分:from2.6.31l-kernel_path/tools/perf/•几乎能够处理所有与性能相关的事件•函数级与指令级的热点查找Perf的功能•评估程序对硬件资源的使用情况:各级Cache访问次数、各级Cache丢失次数、流水线停顿周期、前端总线访问次数……•评估程序对操作系统资源的使用情况:系统调用次数、PageFault次数、上下文切换次数、任务迁移次数……•评估内核性能Bench

4、marks、调度器性能分析、系统行为记录与重演动态添加探测点……Perf原理Perf原理l1.性能事件l1.1硬件性能事件(PMU)l1.2软件性能事件l1.3Tracepoint2.基于时间的性能分析3.基于事件的性能分析性能事件•硬件相关–CPUCycles、Instructions、Cache-References、Cache-Misses、Bus-Cycles、Branch-Misses……•OS相关–Page-Faults、Context-Switches、CPU-Migrations、Emulati

5、on-Faults、Task-Clock…•Tracepoint–内核中所有的Tracepoint,都可以作为perf的性能事件PMU:性能监测单元•PMU(PerformanceMonitoringUnit)–CPU部件:监测处理器性能–CorePMU&UncorePMU–性能事件探测器:在特定条件下探测性能事件是否发生–性能事件计数器:记录性能事件发生的次数PMU:性能监测单元•PMU能够侦测的事件–ProgramCharacterization–MemoryAccesses–Pipelinestalls–

6、BranchPrediction–ResourceUtilization软件性能事件•软件性能事件–内置于kernel,分布在各个–功能模块中–统计与操作系统相关的性能事件–如:任务执行时间--HRTimer上下文切换次数任务迁移次数等基于时间的性能分析•程序热点的查找–如何找到程序中执行最频繁的热点代码?•周期性中断应用程序(周期性采样)–记录当前指令地址(保存InstructionPointer[PC])–IP->functionname•假定当前采样周期内一直在执行此函数•函数的处理器利用率:–函数执行时

7、间/程序总执行时间l采样频率→分析精度基于事件的性能分析•针对时间无关的性能指标–哪个函数/指令触发了最多的Cachemissing?–程序执行期间发生了多少次任务切换?–哪个程序使用的系统调用数最多?•性能计数器–性能计数器累积到一定数值(采样周期)时触发中断–ISR记录当前进程的采样信息:PC,PID,TID等•热点进程/热点函数/热点指令Perf的结构Perf的使用方法Perf使用方法•perflist•perfstat•perftop•perfrecord•perfreport•Tracepoint•p

8、erfsched•perftimechart•perfscriptperflist•功能:–查看当前软硬件环境支持的性能事件–性能事件与CPU及内核版本相关•使用方法–#perflistperfstat•功能–分析程序的整体性能•使用方法–#perfstat./your_prog•常用参数–‘-e’:指定性能事件–‘-p’:指定待分析进程的PID–‘-t’:指定待分析线程的TIDper

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。