linux perf是什么?怎么用?(使用总结)

下面由linux系统教程栏目给大家介绍总结关于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 会输出几个常用的事件的统计,比如:

BibiGPT-哔哔终结者 BibiGPT-哔哔终结者

B站视频总结器-一键总结 音视频内容

BibiGPT-哔哔终结者 28 查看详情 BibiGPT-哔哔终结者

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视频教程》

以上就是linux perf是什么?怎么用?(使用总结)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/545928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 17:37:11
下一篇 2025年11月9日 17:37:50

相关推荐

  • OKX平台网页版登录地址 OKX网页版最新入口

    想要安全便捷地进入 okx 平台进行数字资产交易?okx 网页版为你提供了一个稳定可靠的选择。通过网页版,你无需下载任何客户端,即可在浏览器中直接访问 okx 的各项功能,包括交易、充提币、查看行情、参与活动等等。无论你使用 windows、macos 还是 linux 系统,只要拥有一个现代浏览器…

    2025年12月8日
    000
  • btc看盘软件官网地址 btc看盘软件官方网页版入口

    BTC看盘软件应运而生,它不仅仅是一款简单的行情查看工具,更是您在数字货币交易世界中的得力助手。该软件集成了实时行情数据、专业的图表分析、个性化的预警设置等功能,旨在帮助用户更高效、更理性地进行交易。无论您是经验丰富的资深交易员,还是初入币圈的新手,这款软件都能满足您不同的需求,让您在波澜壮阔的数字…

    2025年12月8日
    000
  • 七大值得关注的链上新秀RWA项目:KTA/RWA/COLLAT/BUILDon/PVS/Linux/CVGT

    现在有哪些值得关注的新项目?随着传统金融巨头纷纷“带资进组”,叠加政策监管日趋清晰,rwa赛道正加速驶入主流视野。曾经属于小圈子探索的资产上链,如今正成为合规创新的桥头堡。而近期链上也悄然掀起一场“合规+想象力”的新浪潮,多个打着rwa标签的项目引发市场关注。 本文PANews盘点了最近7个活跃于R…

    2025年12月8日 好文分享
    000
  • 欧易官方入口正确地址 欧易下载教程

    欧易官方入口正确地址是:www.okx.com。该地址是欧易的全球官方网站,提供多语言支持和移动应用下载,确保用户数据安全和便捷交易体验。 进入欧易官方入口的正确地址是:。这个地址是欧易的全球官方网站,适用于大多数国家和地区的用户。访问该网站时,用户可以选择多种语言进行操作,极大地提升了用户体验。此…

    2025年12月8日
    000
  • 欧亿ouyi交易平台v6.120.0官方最新安装版入口

    欧亿ouyi交易平台作为全球领先的数字资产交易平台,其最新版本v6.120.0已经发布。该版本在用户体验、安全性和功能性上都进行了显著的提升,旨在为用户提供更流畅、更安全的交易体验。无论你是新手还是资深交易者,欧亿ouyi交易平台都能满足你的需求。本文将详细介绍如何下载和安装欧亿ouyi交易平台v6…

    2025年12月8日
    000
  • 安币交易所怎么安全下载 安币交易所安全入口

    安币交易所安全下载和访问的步骤包括:1.访问官方网站下载客户端;2.验证文件完整性;3.书签官方网站并使用HTTPS访问;4.启用双重认证并使用强密码进行安全交易。 安币交易所安全下载指南 安币交易所是许多加密货币投资者选择的平台之一。为了确保在使用该交易所时能够安全地进行下载和访问,我们将详细介绍…

    2025年12月8日
    000
  • 2025年最好的比特币,Litecoin和Dogecoin云挖掘平台

    在2025年,比特币、莱特币和狗狗币依然在加密矿业领域占据主导地位。 在2025年,得益于强劲的市值、稳定的市场需求以及可靠的网络性能,比特币、莱特币和狗狗币依然是最受欢迎的加密货币。这三种货币通常被认为是投资者的理想选择,而其他替代币则因交易速度、社区活跃程度及通货膨胀机制等因素而有所不同。 对于…

    2025年12月8日
    000
  • Linux中如何安装Nginx服务_Linux安装Nginx服务的完整指南

    首先更新系统软件包,然后通过对应包管理器安装Nginx,启动并启用服务,开放防火墙端口,最后验证欢迎页显示以确认安装成功。 在Linux系统中安装Nginx服务是搭建Web服务器的第一步。Nginx以高性能、低资源消耗和良好的并发处理能力著称,广泛用于静态内容服务、反向代理和负载均衡。以下是在主流L…

    2025年12月6日 运维
    000
  • Linux journalctl与systemctl status结合分析

    先看 systemctl status 确认服务状态,再用 journalctl 查看详细日志。例如 nginx 启动失败时,systemctl status 显示 Active: failed,journalctl -u nginx 发现端口 80 被占用,结合两者可快速定位问题根源。 在 Lin…

    2025年12月6日 运维
    100
  • Linux如何防止缓冲区溢出_Linux防止缓冲区溢出的安全措施

    缓冲区溢出可通过栈保护、ASLR、NX bit、安全编译选项和良好编码实践来防范。1. 使用-fstack-protector-strong插入canary检测栈破坏;2. 启用ASLR(kernel.randomize_va_space=2)随机化内存布局;3. 利用NX bit标记不可执行内存页…

    2025年12月6日 运维
    000
  • Linux如何优化系统性能_Linux系统性能优化的实用方法

    优化Linux性能需先监控资源使用,通过top、vmstat等命令分析负载,再调整内核参数如TCP优化与内存交换,结合关闭无用服务、选用合适文件系统与I/O调度器,持续按需调优以提升系统效率。 Linux系统性能优化的核心在于合理配置资源、监控系统状态并及时调整瓶颈环节。通过一系列实用手段,可以显著…

    2025年12月6日 运维
    000
  • Pboot插件数据库连接的配置教程_Pboot插件数据库备份的自动化脚本

    首先配置PbootCMS数据库连接参数,确保插件正常访问;接着创建auto_backup.php脚本实现备份功能;然后通过Windows任务计划程序或Linux Cron定时执行该脚本,完成自动化备份流程。 如果您正在开发或维护一个基于PbootCMS的网站,并希望实现插件对数据库的连接配置以及自动…

    2025年12月6日 软件教程
    000
  • Linux命令行中wc命令的实用技巧

    wc命令可统计文件的行数、单词数、字符数和字节数,常用-l统计行数,如wc -l /etc/passwd查看用户数量;结合grep可分析日志,如grep “error” logfile.txt | wc -l统计错误行数;-w统计单词数,-m统计字符数(含空格换行),-c统计…

    2025年12月6日 运维
    000
  • Linux命令行中fc命令的使用方法

    fc 是 Linux 中用于管理命令历史的工具,可查看、编辑并重新执行历史命令。输入 fc 直接编辑最近一条命令,默认调用 $EDITOR 打开编辑器修改后自动执行;通过 fc 100 110 或 fc -5 -1 可批量编辑指定范围的历史命令,保存后按序重跑;使用 fc -l 列出命令历史,支持起…

    2025年12月6日 运维
    000
  • VSCode终端美化:功率线字体配置

    首先需安装Powerline字体如Nerd Fonts,再在VSCode设置中将terminal.integrated.fontFamily设为’FiraCode Nerd Font’等支持字体,最后配合oh-my-zsh的powerlevel10k等Shell主题启用完整美…

    2025年12月6日 开发工具
    000
  • Linux命令行中locate命令的快速查找方法

    locate命令通过查询数据库快速查找文件,使用-i可忽略大小写,-n限制结果数量,-c统计匹配项,-r支持正则表达式精确匹配,刚创建的文件需运行sudo updatedb更新数据库才能查到。 在Linux命令行中,locate 命令是快速查找文件和目录路径的高效工具。它不直接扫描整个文件系统,而是…

    2025年12月6日 运维
    000
  • Linux文件系统rsync命令详解

    rsync通过增量同步高效复制文件,支持本地及远程同步,常用选项包括-a、-v、-z和–delete,结合SSH可安全传输数据,配合cron可实现定时备份。 rsync 是 Linux 系统中一个非常强大且常用的文件同步工具,能够高效地在本地或远程系统之间复制和同步文件与目录。它以“增量…

    2025年12月6日 运维
    000
  • Linux systemctl list-dependencies命令详解

    systemctl list-dependencies 用于查看 systemd 单元的依赖关系,帮助排查启动问题和优化启动流程。1. 基本语法为 systemctl list-dependencies [选项] [单元名称],默认显示 default.target 的依赖。2. 常见单元类型包括 …

    2025年12月6日 运维
    100
  • 如何在mysql中安装mysql插件扩展

    安装MySQL插件需先确认插件文件位于plugin_dir目录,使用INSTALL PLUGIN命令加载,如INSTALL PLUGIN keyring_file SONAME ‘keyring_file.so’,并确保用户有SUPER权限,最后通过SHOW PLUGINS验…

    2025年12月6日 数据库
    000
  • 如何在mysql中定期清理过期备份文件

    通过Shell脚本结合cron定时任务实现MySQL过期备份文件自动清理,首先统一备份命名格式(如backup_20250405.sql)并存放在指定目录(/data/backup/mysql),然后编写脚本使用find命令删除7天前的.sql文件,配置每日凌晨2点执行的cron任务,并加入日志记录…

    2025年12月6日 数据库
    000

发表回复

登录后才能评论
关注微信