iis服务器助手广告
返回顶部
首页 > 资讯 > 操作系统 >linux中perf有什么用
  • 923
分享到

linux中perf有什么用

2023-06-25 13:06:52 923人浏览 独家记忆
摘要

这篇文章主要为大家展示了“linux中perf有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中perf有什么用”这篇文章吧。perf是linux系统中提供的性能分析工具,它基于

这篇文章主要为大家展示了“linux中perf有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中perf有什么用”这篇文章吧。

perf是linux系统中提供的性能分析工具,它基于一个叫“PerfORMance counters”的内核子系统实现,同时支持硬件(CPU、PMU(Performance Monitoring Unit))和软件(软件计数器、tracepoint)层面的性能分析。

perf中的事件

perf与其他性能调优工具一样,都是通过对监测对象进行采样,根据采样点的分布来推断整个程序的行为。通过perf list命令我们可以看到perf支持很多的采样事件,比如branch-misses、cpu-clock等等。perf中预定义的事件属于不同的类型,比如硬件产生的事件(cache 命中/分支miss)和软件产生的事件(context switch/page fault)等等。

tracepoint

tracepoint是linux内核中定义的一些hook,如果被开启,它们就会在执行到特定逻辑时被触发,方便其他工具获取系统内部的运行状态等信息,perf就是利用了tracepoint,它会记录和统计tracepoint的各个事件,生成分析报告。

使用方式

perf 工具的具体使用方式如下:

perf [--version] [--help] COMMAND [ARGS]

其中的COMMAND列表可以通过执行perf --help查看,下面列举几个常用的command。

perf stat

perf stat的作用是执行一个命令并收集其运行过程中的各个数据,它可以提供一个程序运行情况的总体概览。比如:

user@localhost:~$ perf stat hostnamelocalhost Performance counter stats for 'hostname':          0.313464      task-clock (msec)         #    0.481 CPUs utilized                           2      context-switches          #    0.006 M/sec                                   0      cpu-migrations            #    0.000 K/sec                                 153      page-faults               #    0.488 M/sec                             896,723      cycles                    #    2.861 GHz                               620,709      instructions              #    0.69  insn per cycle                    121,143      branches                  #  386.465 M/sec                               6,247      branch-misses             #    5.16% of all branches               0.000651441 seconds time elapsed

上面这个例子,通过perf stat运行了hostname命令,并将其运行过程中的一些指标汇总显示了出来,比如task-clock、context-switches等待。默认情况下,perf stat 会输出几个常用的事件的统计,比如:

task-clock-msecs:cpu 使用率context-switches:进程切换次数page-faults:发生缺页的次数cpu-migrations:表示进程运行过程中发生了多少次CPU迁移,即被调度器从一个CPU转移到另外一个CPU上运行cycles:处理器时钟,一条机器指令可能需要多个cyclesinstructions: 机器指令数目branches:遇到的分支指令数branch-misses是预测错误的分支指令数

除此之外,我们可以使用-e参数来指定我们感兴趣的事件,比如:

user@localhost:~$ perf stat -e cache-misses hostnamelocalhost Performance counter stats for 'hostname':          682      cache-misses                                                       0.000646676 seconds time elapsed

perf top

perf top的作用是实时地显示系统当前的性能统计信息。前面的perf stat用于对一个特定的程序进行分析,而某些时候我们可能并不知道是哪个程序影响了系统性能,这时候就可以用perf top来查找可疑的程序。比如:

Samples: 775  of event 'cpu-clock', Event count (approx.): 92931021Overhead  Shared Object       Symbol   8.93%  [kernel]            [k] vsnprintf   7.73%  perf                [.] rb_next   5.92%  [kernel]            [k] kallsyms_expand_symbol.clone.0   5.07%  [kernel]            [k] format_decode   4.59%  [kernel]            [k] number   3.40%  perf                [.] symbols__insert   3.03%  libslang.so.2.2.1   [.] SLtt_smart_puts

上面的例子显示perf统计了cpu-clock事件的数据,根据比例进行了排序。和perf stat一样,我们可以通过-e参数指定统计其他的事件,比如perf top -e context-switches可以查看进程切换最多的top N个进程。

perf record & perf report

perf record的作用和perf stat类似,它可以运行一个命令并生成统计信息,不过perf record不会将结果显示出来,而是将结果输出到文件中。perf record生成的文件可以用perf report来进行解析。

perf record还可以通过-g参数,在分析时生成calling graph,帮助定位更上层的逻辑分布。

其他

通过例子我们可以发现,perf的分析结果中的Symbol一列显示的都是C语言函数的名字。对于java来说,jit编译产生的函数就会直接显示在symbol里,而不是java的函数名,这时要定位问题就不是那么容易了,我们需要通过额外的手段将symbol和java程序的符号表对应起来,具体后续再讨论了。

以上是“linux中perf有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: linux中perf有什么用

本文链接: https://www.lsjlt.com/news/304969.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中perf有什么用
    这篇文章主要为大家展示了“linux中perf有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中perf有什么用”这篇文章吧。perf是linux系统中提供的性能分析工具,它基于...
    99+
    2023-06-25
  • Linux下Perf怎么用
    小编给大家分享一下Linux下Perf怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 背景知识1.1 与性能调优相关的硬件特性硬件特性之cache内存读...
    99+
    2023-06-16
  • Linux中ACL有什么用
    这篇文章主要为大家展示了“Linux中ACL有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中ACL有什么用”这篇文章吧。ACL 是什么ACL的全称是 Access Contro...
    99+
    2023-06-12
  • linux中lvm有什么用
    这篇文章将为大家详细讲解有关linux中lvm有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各...
    99+
    2023-06-13
  • linux中Drawing有什么用
    这篇文章主要介绍了linux中Drawing有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Drawing 是一个基本的图像编辑器,就像微软画图一样。有了这...
    99+
    2023-06-15
  • linux中Git有什么用
    这篇文章主要介绍了linux中Git有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。导航 —— 跳到之前的分支git ...
    99+
    2023-06-16
  • linux中Screen有什么用
    这篇文章主要介绍linux中Screen有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、screen命令是什么?Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话...
    99+
    2023-06-13
  • Linux中file有什么用
    这篇文章主要为大家展示了“Linux中file有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中file有什么用”这篇文章吧。Linux file命令用于辨识文件类型。通过fil...
    99+
    2023-06-09
  • linux中scanimage有什么用
    这篇文章主要介绍了linux中scanimage有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。遇到 scanimage!scanimage 是一个命令行工具...
    99+
    2023-06-15
  • linux中traceroute有什么用
    这篇文章主要介绍linux中traceroute有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!traceroute 介绍traceroute 就如同它的名字一样,能够追踪到一个网络数据包传输经过的路由器路径。...
    99+
    2023-06-16
  • linux中Remind有什么用
    这篇文章主要介绍了linux中Remind有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Remind 就是一款可以用 vi 来编辑你的 todo list 的工具。我...
    99+
    2023-06-17
  • linux中EncryptPad有什么作用
    这篇文章主要介绍“linux中EncryptPad有什么作用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux中EncryptPad有什么作用”文章能帮助大家...
    99+
    2023-02-17
    linux encryptpad
  • linux中dd有什么作用
    这篇文章主要介绍“linux中dd有什么作用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux中dd有什么作用”文章能帮助大家解决问题。在linux中,dd是用于读取、转换并输出数据的命令;该...
    99+
    2023-07-02
  • linux中Shell Script有什么用
    这篇文章给大家分享的是有关linux中Shell Script有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 Shell Scipt使用指令和基本程序设计结构写成的程序,可以完成复杂的处理流程1 程序书...
    99+
    2023-06-09
  • linux中shell有什么作用
    Shell是一种命令行解释器,它是Linux操作系统中用户与系统内核交互的界面。它具有以下作用:1. 执行命令:通过Shell,用户...
    99+
    2023-08-30
    linux shell
  • linux中git命令有什么用
    这篇文章将为大家详细讲解有关linux中git命令有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言因为结合了开发中可能遇到的场景,篇幅较长,不过我觉得很有助于你理解 git 的运作机制,而不是死...
    99+
    2023-06-09
  • Linux中Rpm命令有什么用
    这篇文章主要介绍了Linux中Rpm命令有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。rpm命令是RPM软件包的管理工具。rpm原本是Red Hat&nbs...
    99+
    2023-06-09
  • linux中tar命令有什么用
    小编给大家分享一下linux中tar命令有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tar命令[root@Linux ~]# tar [-cxtzjvf...
    99+
    2023-06-09
  • linux中chgrp命令有什么用
    这篇文章主要介绍linux中chgrp命令有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理。可以使用chgrp指令取变更文件与目录所属群组,这种...
    99+
    2023-06-09
  • linux命令中cat有什么用
    这篇文章主要介绍linux命令中cat有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作