Linux性能调试工具使用

Perf

perf 可以看作是 pidstattopiotop 的结合体,但它不仅仅局限于这些工具的功能,还提供了更加底层的性能分析,尤其在 CPU、内存和硬件事件方面的跟踪能力。

perf 和其他工具的对比:

  • top:实时显示系统和进程的 CPU 使用情况,类似于 perf top
  • pidstat:提供进程级别的详细资源使用情况,包括 CPU、内存、I/O 等,类似于 perf statperf record 的部分功能。
  • iotop:用于监控磁盘 I/O 负载,perf 可以通过 perf statperf record 来查看磁盘 I/O 活动(虽然它不像 iotop 那样专注于磁盘 I/O)。

perf 提供的更多功能:

  • 硬件事件分析:如 CPU 缓存、分支预测、缓存未命中等。
  • 系统调用跟踪:通过 perf trace 可以跟踪系统调用的行为,类似 strace
  • 低级别性能采样:可以进行更精细的性能数据采样,获取程序执行的详细信息。

总结

perf 是一个综合性的工具,能够进行深度的性能分析,涵盖了 pidstattopiotop 的部分功能,并且提供了更多低层次的硬件性能监控,适用于高效的性能调优和分析

安装:-----快速找出性能瓶颈和优化点

sudo apt-get install linux-tools-common
sudo apt update
sudo apt install linux-tools-5.15.0-131-generic linux-cloud-tools-5.15.0-131-generic

采用perf对系统CPU事件进行采样:

采样60s,会生成一个perf.data文件;

1.对一个正在运行的进程进行采样
perf record -p PID -g -- sleep 60

2.全新运行一个二进制文件main,进行采样
sudo perf record -F 99 -g ./main --sleep 60

生成火焰图:

git clone https://github.com/brendangregg/FlameGraph.git
#安装perl
perl -v查看

 perf record -g ./test sleep 10
 perf script -i perf.data &> perf.unfold
./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
 ./FlameGraph/flamegraph.pl perf.folded >perf.svg

火焰图的宽度用于比较不同函数或代码路径的性能,高度用于显示函数调用堆栈的深度。

主要功能:

  • 性能计数器perf 支持硬件性能计数器、软件性能计数器、跟踪点以及动态探针(如 kprobes 或 uprobes)。

  • 系统分析:能够对整个系统进行统计分析,包括内核和用户态代码。

  • 子命令perf 提供多个子命令,如:

    • stat:测量单个程序或系统在特定时间内的事件计数。
    • top:动态显示热点函数,类似于 top 命令。
    • record:记录单个程序的采样数据。
    • report:分析由 record 生成的文件,生成平面或图形化的性能报告。
    • annotate:对源代码或汇编代码进行注释,显示性能热点。
    • sched:跟踪和测量调度器的动作和延迟。
    • list:列出可用的事件。

Top

工具 主要监控 作用
top CPU、内存使用率 查看进程的 CPU 占用、内存占用,发现高 CPU 负载进程
iotop 磁盘 I/O 读写 查看进程的磁盘读写速率,发现高 I/O 负载进程

top 命令的汇总区域显示了五个方面的系统性能信息:

负载:时间,登陆用户数,系统平均负载;

进程:运行,睡眠,停止,僵尸;

cpu:用户态,核心态,NICE,空闲,等待IO,中断等;

内存:总量,已用,空闲(系统角度),缓冲,缓存;

交换分区:总量,已用,空闲

任务区域默认显示:进程 IDÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值