perf常用命令(perf top perf record perf stat)

el/2024/7/17 20:49:40

perf  top

通过-e指定关注的事件,比如查看造成cache miss最多的函数排行

perf top -e cache-misses

perf top -e task-clock 

perf top -G // 得到调用关系图

perf top-e cache-misses -G // 得到调用关系图

perf top -e cycles // 指定性能事件

perf top -p 23015,32476 //查看这两个进程的cpu cycles使用情况

perf top -s comm,pid,symbol // 显示调用symbol的进程名和进程号

perf top --comms nginx,top // 仅显示属于指定进程的符号

perf top --symbols kfree // 仅显示指定的符号

 

perf stat

perf stat -e task-clock -e context-switches -p  进程号
perf stat -e stalled-cycles-frontend -p  进程号

perf  stat -r  50 ls 

Perf可以帮你统计N次结果的数值波动情况:

perf stat --repeat 5 -e kmem:mm_page_pcpu_drain -e  kmem:mm_page_alloc -e kmem:mm_pagevec_free -e kmem:mm_page_free_direct ./t2  10

 

perf record -a     

perf report

 

perf record –e cpu-clock  ./t1

perf report

 

Perf list,perf 事件

使用 perf list 命令可以列出所有能够触发 perf 采样点的事件。

Hardware Event 是由 PMU 硬件产生的事件,比如 cache 命中,当您需要了解程序对硬件特性的使用情况时,便需要对这些事件进行采样;

Software Event 是内核软件产生的事件,比如进程切换,tick 数等 ;

Tracepoint event 是内核中的静态 tracepoint 所触发的事件,这些 tracepoint 用来判断程序运行期间内核的行为细节,比如 slab 分配器的分配次数等。

List of pre-defined events (to be used in -e):
  cpu-cycles OR cycles                               [Hardware event]
  instructions                                       [Hardware event]
  cache-references                                   [Hardware event]
  cache-misses                                [Hardware event]
  branch-instructions OR branches                    [Hardware event]
  branch-misses                               [Hardware event]
  bus-cycles                                         [Hardware event]
  stalled-cycles-frontend OR idle-cycles-frontend    [Hardware event]
  stalled-cycles-backend OR idle-cycles-backend      [Hardware event]
  ref-cycles                                         [Hardware event]

  cpu-clock                                   [Software event]
  task-clock                                         [Software event]
  page-faults OR faults                              [Software event]
  context-switches OR cs                      [Software event]
  cpu-migrations OR migrations                       [Software event]
  minor-faults                                       [Software event]
  major-faults                                       [Software event]
  alignment-faults                                   [Software event]
  emulation-faults                                   [Software event]

  L1-dcache-loads                                    [Hardware cache event]
  L1-dcache-load-misses                              [Hardware cache event]
  L1-dcache-stores                                   [Hardware cache event]
  L1-dcache-store-misses                             [Hardware cache event]
  L1-dcache-prefetches                               [Hardware cache event]
  L1-dcache-prefetch-misses                          [Hardware cache event]
  L1-icache-loads                                    [Hardware cache event]
  L1-icache-load-misses                              [Hardware cache event]
  L1-icache-prefetches                               [Hardware cache event]
  L1-icache-prefetch-misses                          [Hardware cache event]
  LLC-loads                                          [Hardware cache event]
  LLC-load-misses                                    [Hardware cache event]
  LLC-stores                                         [Hardware cache event]
  LLC-store-misses                                   [Hardware cache event]
  LLC-prefetches                                     [Hardware cache event]
  LLC-prefetch-misses                                [Hardware cache event]
  dTLB-loads                                         [Hardware cache event]
  dTLB-load-misses                                   [Hardware cache event]
  dTLB-stores                                        [Hardware cache event]
  dTLB-store-misses                                  [Hardware cache event]
  dTLB-prefetches                                    [Hardware cache event]
  dTLB-prefetch-misses                               [Hardware cache event]

  iTLB-loads                                         [Hardware cache event]
  iTLB-load-misses                                   [Hardware cache event]
  branch-loads                                       [Hardware cache event]
  branch-load-misses                                 [Hardware cache event]
  node-loads                                         [Hardware cache event]
  node-load-misses                                   [Hardware cache event]
  node-stores                                        [Hardware cache event]
  node-store-misses                                  [Hardware cache event]
  node-prefetches                                    [Hardware cache event]
  node-prefetch-misses                               [Hardware cache event]

  mem:<addr>[:access]                                [Hardware breakpoint]

  sunrpc:rpc_call_status                             [Tracepoint event]
  sunrpc:rpc_bind_status                             [Tracepoint event]
  sunrpc:rpc_connect_status                          [Tracepoint event]
  sunrpc:rpc_task_begin                              [Tracepoint event]
  sunrpc:rpc_task_run_action                         [Tracepoint event]

  .............  

 


http://www.ngui.cc/el/5557084.html

相关文章

同步/异步 与 阻塞/非阻塞的区别

偏重于消息通知 同步&#xff1a;消息发送出去之后要等结果出来才能做别的事&#xff1b; 异步&#xff1a;消息发送出去之后不需要等结果出来&#xff0c;只要得到一个简单的接收响应就可以做别的事情。 偏重于处理消息 阻塞&#xff1a;阻塞就是指你必须把这件事干完&…

AJAX:success,error,complete,beforeSend使用例子及解释

在与后台交互的时候&#xff0c;经常使用到jQuery的ajax()方法来请求数据&#xff1b; 回调函数用的比较多的是success&#xff0c;但是complete、beforeSend、error函数也是很有用的&#xff1b; beforeSend 该函数用于发送请求前修改XMLHttpRequest对象。其中参数就是XMLHt…

linux内核剖析---Linux系统调用详解(实现机制分析)

原文博客 http://blog.csdn.net/gatieme/article/details/50779184 本文介绍了系统调用的一些实现细节。首先分析了系统调用的意义&#xff0c;它们与库函数和应用程序接口(API)有怎样的关系。然后&#xff0c;我们考察了Linux内核如何实现系统调用&#xff0c;以及执行系统调…

Spark知识点介绍与安装教程

Spark介绍与安装教程&#xff08;Linux系统&#xff09; Spark介绍与安装教程Linux系统 Spark的介绍 Hadoop与Strom大数据处理Spark特点与应用场景框架RDD依赖懒惰计算DAG调度过程容错Spark的安装教程 安装JDK与Scala安装Spark测试Wordcount示例 Spark的介绍 Hadoop与Strom H…

子雨大数据之Spark入门教程---Spark2.1.0入门:第一个Spark应用程序:WordCount 2.2

原博客地址&#xff1a; http://dblab.xmu.edu.cn/blog/1311-2/ 前面已经学习了Spark安装&#xff0c;完成了实验环境的搭建&#xff0c;并且学习了Spark运行架构和RDD设计原理&#xff0c;同时&#xff0c;我们还学习了Scala编程的基本语法&#xff0c;有了这些基础知识作为铺…

子雨大数据之Spark入门教程---Spark简介1.1

关于Spark Spark最初由美国加州伯克利大学&#xff08;UCBerkeley&#xff09;的AMP&#xff08;Algorithms, Machines and People&#xff09;实验室于2009年开发&#xff0c;是基于内存计算的大数据并行计算框架&#xff0c;可用于构建大型的、低延迟的数据分析应用程序。Sp…

子雨大数据之Spark入门教程---Spark入门:Spark运行架构1.2

本节首先介绍Spark的基本概念和架构设计方法&#xff0c;然后介绍Spark运行基本流程。 基本概念 在具体讲解Spark运行架构之前&#xff0c;需要先了解几个重要的概念&#xff1a;*  RDD&#xff1a;是弹性分布式数据集&#xff08;Resilient Distributed Dataset&#xff0…

子雨大数据之Spark入门教程---Spark入门:RDD的设计与运行原理1.3

Spark的核心是建立在统一的抽象RDD之上&#xff0c;使得Spark的各个组件可以无缝进行集成&#xff0c;在同一个应用程序中完成大数据计算任务。RDD的设计理念源自AMP实验室发表的论文《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Co…

子雨大数据之Spark入门教程---Spark入门:Spark的部署模式1.4

本节首先介绍Spark支持的三种典型集群部署方式&#xff0c;即standalone、Spark on Mesos和Spark on YARN&#xff1b;然后&#xff0c;介绍在企业中是如何具体部署和应用Spark框架的&#xff0c;在企业实际应用环境中&#xff0c;针对不同的应用场景&#xff0c;可以采用不同的…

子雨大数据之Spark入门教程---Spark的安装和使用sbt、maven打包代码 2.1

Spark可以独立安装使用&#xff0c;也可以和Hadoop一起安装使用。本教程中&#xff0c;我们采用和Hadoop一起安装使用&#xff0c;这样&#xff0c;就可以让Spark使用HDFS存取数据。需要说明的是&#xff0c;当安装好Spark以后&#xff0c;里面就自带了scala环境&#xff0c;不…