安装

sudo apt-get update && sudo apt-get install linux-tools-common linux-tools-`uname -r` linux-cloud-tools-`uname -r` linux-tools-generic linux-cloud-tools-generic -y

例子

列出所有支持事件

sudo perf list

查看某进程 CPU 消耗原因

比如排查 redis

# 实时
sudo perf top -p 进程PID

# 记录
sudo perf record -F 99 -p 进程PID --call-graph dwarf sleep 10

记录所有

# 记录 30 秒某进程的性能统计
timeout 30 sudo perf record -p 进程PID

# 查看报告
sudo perf report

计数统计

# 只收集 5 秒
sudo perf stat -p  进程PID sleep 5

跟踪调度器事件

# 只跟踪 10 秒
sudo perf stat -e "sched:*" -p 进程PID sleep 10

上下文切换

sudo perf stat -e "context-switches" -p 进程PID sleep 10

内核

查看内核是否开启 perf

cat "/boot/config-`uname -r`" | grep "PERF_EVENT"

参考资料