yum install perf -y
[ root@k8s bin]
usage: perf [ --version] [ --help] [ OPTIONS] COMMAND [ ARGS]
The most commonly used perf commands are:
annotate Read perf.data ( created by perf record) and display annotated code
archive Create archive with object files with build-ids found in perf.data file
bench General framework for benchmark suites
buildid-cache Manage build-id cache.
buildid-list List the buildids in a perf.data file
c2c Shared Data C2C/HITM Analyzer.
config Get and set variables in a configuration file.
data Data file related processing
diff Read perf.data files and display the differential profile
evlist List the event names in a perf.data file
ftrace simple wrapper for kernel's ftrace functionality
inject Filter to augment the events stream with additional information
kallsyms Searches running kernel for symbols
kmem Tool to trace/measure kernel memory properties
kvm Tool to trace/measure kvm guest os
list List all symbolic event types
lock Analyze lock events
mem Profile memory accesses
record Run a command and record its profile into perf.data
report Read perf.data (created by perf record) and display the profile
sched Tool to trace/measure scheduler properties (latencies)
script Read perf.data (created by perf record) and display trace output
stat Run a command and gather performance counter statistics
test Runs sanity tests.
timechart Tool to visualize total system behavior during a workload
top System profiling tool.
version display the version of perf binary
probe Define new dynamic tracepoints
trace strace inspired tool
See ' perf help COMMAND' for more information on a specific command.
perf 是一个用于性能分析的工具,主要用于 Linux 系统。以下常用命令的简要解释:
annotate: 读取 perf.data 文件,并显示带注释的代码,帮助你查看性能数据与源代码的对应关系。
archive: 创建一个包含 perf.data 文件中找到的对象文件及其构建ID的归档文件。
bench: 提供一个通用框架,用于基准测试套件。
buildid-cache: 管理构建ID缓存,帮助快速查找对象文件。
buildid-list: 列出 perf.data 文件中的所有构建ID。
c2c: 共享数据C2C/HITM分析工具,分析缓存一致性问题。
config: 获取和设置配置文件中的变量。
data: 处理与数据文件相关的操作。
diff: 比较两个 perf.data 文件,并显示差异化的性能分析。
evlist: 列出 perf.data 文件中事件的名称。
ftrace: 简单的内核 ftrace 功能的包装工具,用于跟踪函数调用。
inject: 过滤器,用于增强事件流,添加额外信息。
kallsyms: 在运行中的内核中搜索符号。
kmem: 工具,用于跟踪和测量内核内存属性。
kvm: 工具,用于跟踪和测量 KVM 客户操作系统的性能。
list: 列出所有符号事件类型。
lock: 分析锁事件,帮助识别性能瓶颈。
mem: 分析内存访问情况,帮助优化内存性能。
record: 运行命令并将其性能数据记录到 perf.data 文件中。
report: 读取 perf.data 文件并显示性能分析报告。
sched: 跟踪和测量调度程序的属性(如延迟)。
script: 读取 perf.data 文件并显示跟踪输出,便于分析。
stat: 运行命令并收集性能计数器统计信息。
test: 运行一些基本的自检测试。
timechart: 可视化工作负载期间系统的整体行为。
top: 系统性能分析工具,实时显示系统性能。
version: 显示 perf 二进制文件的版本信息。
probe: 定义新的动态跟踪点,允许用户在特定位置插入跟踪。
trace: 类似于 strace 的工具,用于跟踪系统调用。
perf record -e cpu-cycles ./my_application
perf report
perf mem record ./my_application
perf mem report
perf stat -C 0,1 ./my_application
perf record -e cache-misses ./my_application
perf timechart record ./my_application
perf list
perf stat -e instructions,cycles ./my_application
perf record -e irq:irq_handler_entry ./my_kernel_module
perf report
perf report --symbol-filter= my_function
perf mem -D ./my_application
perf trace
perf diff perf.data.old perf.data.new
perf record -K -U ./my_application
perf record -e cycles:u ./my_application
perf mem -t load ./my_application
perf stat -C 0 ./my_application
perf record -p < pid>
perf stat -a ./my_application
perf record -e page-faults ./my_application
perf record -g ./my_application
perf report --stdio
perf record -e context-switches ./my_application
perf report
perf record -e block:block_rq_issue ./my_application
perf report
perf stat -e task-clock ./my_application
perf record -e syscalls:sys_enter_* ./my_application
perf report
perf record -e bus-cycles ./my_application
perf report --dsos = my_module.so
perf stat -C 1 -e cycles,instructions ./my_application
perf record -e L1-dcache-load-misses ./my_application
perf report
perf script -i perf.data > output.json
perf mem record -t load ./my_application
perf mem report
perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > flamegraph.svg
perf record -F 99 ./my_application
perf record -e cpu-cycles -a
perf record -e malloc ./my_application
perf report
perf report --hide-unresolved
perf stat -e cache-references,cache-misses ./my_application
perf record -e cpu-clock -U ./my_application
perf report
perf record -e kmalloc ./my_kernel_module
perf report
perf record -e context-switches ./my_application
perf report
perf stat -e cpu-clock,task-clock ./my_application
perf record -o output.data -e cycles ./my_application
perf trace -e sys_enter_open ./my_application
perf record -e instructions,cache-misses ./my_application
perf report
perf stat -p < pid>
perf record -e malloc,free ./my_application
perf report
perf record -e block:block_rq_complete ./my_application
perf report
perf trace -e sys_exit_* ./my_application
perf record -g -e my_function ./my_application
perf report
perf record -g ./my_application
perf script > out.txt
perf mem record -a -t load ./my_application
perf record -e cache-misses,cache-references ./my_application
perf report
perf record -e irq:irq_handler_exit ./my_application
perf report
perf top -p < pid>
perf record -a ./my_application
perf report
perf stat -a -e cpu-load ./my_application
perf mem record -t store ./my_application
perf stat -e context-switches ./my_application
perf stat -a ./my_application
perf record -e malloc ./my_application
perf report
perf trace -e syscalls:sys_enter_* ./my_application
perf stat -e cycles,instructions,cache-misses ./my_application
perf record -p < pid> -g
perf report
perf mem record -t load ./my_application
perf mem report
perf record -e block:block_rq_issue ./my_application
perf report
perf record -e kmalloc -m 1024 ./my_kernel_module
perf stat -e cpu-cycles,task-clock ./my_application
perf mem record -a -t load ./my_application
perf stat -e context-switches -p < pid>
perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > flamegraph.svg
perf record -e kmalloc ./my_application
perf report
perf stat -C 0 -e cycles,instructions ./my_application
perf record -g -e my_function ./my_application
perf report
perf record -e page-faults ./my_application
perf report
perf trace -e sys_exit_* ./my_application
perf record -e malloc,free ./my_application
perf report
perf record -e cache-misses,cache-references ./my_application
perf report
perf record -e irq:irq_handler_exit ./my_application
perf report
perf stat -a ./my_application
在所有 CPU 上监控 my_application 的性能。
perf stat -e cpu-clock -U ./my_application
perf mem record -t store ./my_application
perf mem report
perf stat -e block:block_rq_issue ./my_application
perf trace -e syscalls:sys_enter_* ./my_application
perf record -e cpu-cycles,instructions ./my_application
perf report
perf record -e kmalloc ./my_kernel_module
perf report
perf mem record -t malloc ./my_application
perf mem report
perf stat -e cpu-frequency,cpu-temperature ./my_application
perf record -e bus-cycles ./my_application
perf report
perf stat -p < pid> -e page-faults
perf trace -p < pid> -e syscalls:sys_enter_*
perf record -e cpu-cycles,instructions,cache-misses ./my_application
perf report
perf mem record -t malloc,free ./my_application
perf mem report
perf record -e page-faults ./my_application
perf report
perf record -e context-switches ./my_application
perf report
perf stat -C < cpu_id> ./my_application
perf stat -p < pid> -e page-faults,minor-faults,major-faults
perf mem record -a -t load ./my_application
perf mem report
perf trace -e sys_exit_* ./my_application
perf stat -e block:block_rq_complete ./my_application
perf record -e bus-cycles ./my_application
perf report
perf stat -a ./my_application
perf mem record -t load ./my_application
perf mem report
perf trace -e syscalls:sys_enter_* ./my_application
perf record -e cache-misses,cache-references ./my_application
perf report
perf record -e kmalloc ./my_kernel_module
perf report
perf stat -e cpu-clock -U ./my_application
perf record -e context-switches ./my_application
perf report
perf mem record -a -t load ./my_application
perf stat -e cpu-frequency,cpu-temperature ./my_application
perf record -e block:block_rq_issue ./my_application
perf report
perf record -g -e my_function ./my_application
perf report
perf stat -e context-switches -p < pid>
perf mem record -t malloc ./my_application
perf mem report
perf record -e cpu-cycles,instructions ./my_application
perf report
perf record -e irq:irq_handler_exit ./my_application
perf report
perf stat -a ./my_application
perf stat -e cpu-clock -U ./my_application
perf mem record -t load ./my_application
perf mem report
perf stat -e block:block_rq_issue ./my_application
perf stat -C < cpu_id> -e cycles,instructions ./my_application
perf mem record -t load,store ./my_application
perf mem report
perf trace -e syscalls:sys_enter_read,syscalls:sys_exit_read ./my_application
perf record -e context-switches ./my_application
perf report
perf mem record -t malloc,free -a ./my_application
perf mem report
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf record -e cache-misses,cache-references ./my_application
perf report
perf stat -p < pid> -e cpu-clock,context-switches
perf record -e syscalls:sys_enter_* ./my_application
perf report
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf record -e block:block_rq_issue ./my_application
perf report
perf stat -e cpu-clock -U ./my_application
perf trace -e sys_exit_* ./my_application
perf mem record -a -t load ./my_application
perf mem report
perf record -e kmalloc -m 1024 ./my_kernel_module
perf report
perf stat -e cpu-frequency,cpu-temperature ./my_application
perf record -e bus-cycles ./my_application
perf report
perf stat -e context-switches -p < pid>
perf record -g -e my_function ./my_application
perf report
perf mem record -t load ./my_application
perf mem report
perf stat -e block:block_rq_issue ./my_application
perf record -e cpu-cycles,instructions ./my_application
perf report
perf record -e irq:irq_handler_exit ./my_application
perf report
perf stat -a ./my_application
perf stat -e cpu-clock -U ./my_application
perf mem record -t load ./my_application
perf mem report
perf stat -e block:block_rq_issue ./my_application
perf trace -e syscalls:sys_enter_open,syscalls:sys_exit_open ./my_application
perf record -e context-switches ./my_application
perf report
perf mem record -t malloc,free -a ./my_application
perf mem report
perf trace -p < pid> -e syscalls:sys_enter_*
perf record -e context-switches ./my_application
perf report
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf stat -p < pid> -e cpu-clock,instructions
perf mem record -t malloc ./my_application
perf mem report
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf record -e cache-misses,cache-references ./my_application
perf report
perf record -e kmalloc ./my_kernel_module
perf report
perf trace -e syscalls:sys_enter_* ./my_application
perf record -e block:block_rq_issue ./my_application
perf report
perf stat -e cpu-clock -U ./my_application
perf trace -e syscalls:sys_enter_read,syscalls:sys_exit_read ./my_application
perf stat -e context-switches -p < pid>
perf mem record -t load,store ./my_application
perf mem report
perf stat -C < cpu_id> -e cycles,instructions ./my_application
perf stat -e block:block_rq_issue ./my_application
perf mem record -a -t load ./my_application
perf mem report
perf stat -e cpu-clock ./my_application
perf record -e cpu-cycles,instructions ./my_application
perf report
perf record -g -e my_function ./my_application
perf report
perf mem record -t malloc,free -a ./my_application
perf mem report
perf trace -e sys_exit_* ./my_application
perf stat -e cpu-frequency,cpu-temperature ./my_application
perf record -e bus-cycles ./my_application
perf report
perf record -e irq:irq_handler_exit ./my_application
perf report
perf stat -a ./my_application
perf stat -e cpu-clock -U ./my_application
perf mem record -t load ./my_application
perf mem report
记录内存加载的访问情况。
perf trace -p < pid> -e syscalls:sys_enter_*
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf stat -e page-faults,minor-faults,major-faults -p < pid>
perf record -e syscalls:sys_enter_* ./my_application
perf report
perf stat -C < cpu_id> -e cache-misses,cache-references ./my_application
perf stat -e context-switches -p < pid>
perf mem record -t malloc,free -a ./my_application
perf mem report
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf stat -p < pid> -e cpu-clock,instructions
perf mem record -a -t load ./my_application
perf mem report
perf trace -e syscalls:sys_exit_* ./my_application
perf record -e cpu-cycles,instructions ./my_application
perf report
perf mem record -t load ./my_application
perf mem report
perf record -g -e my_function ./my_application
perf report
perf stat -e cpu-frequency,cpu-temperature ./my_application
perf mem record -t malloc,free ./my_application
perf mem report
perf record -e kmalloc ./my_kernel_module
perf report
perf stat -a ./my_application
perf record -e irq:irq_handler_exit ./my_application
perf report
perf stat -e page-faults -p < pid>
perf record -e cache-misses,cache-references ./my_application
perf report
perf stat -e block:block_rq_issue ./my_application
perf stat -p < pid> -e cpu-clock,instructions,cycles
perf record -e context-switches ./my_application
perf report
perf stat -e bus-cycles,cache-misses ./my_application
perf trace -e syscalls:sys_enter_open,syscalls:sys_exit_open ./my_application
perf mem record -t load,store ./my_application
perf mem report
perf stat -e cycles,instructions,cache-misses ./my_application
perf stat -e block:block_rq_issue,block:block_rq_complete -p < pid>
perf record -e syscalls:sys_enter_* ./my_application
perf report
perf mem record -t malloc -a ./my_application
perf mem report
perf record -e kmalloc -p < pid> ./my_kernel_module
perf report
perf trace -e syscalls:sys_exit_* ./my_application
perf stat -e cpu-frequency,cpu-temperature ./my_application
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf record -e cpu-cycles,instructions ./my_application
perf report
perf stat -p < pid> -e cpu-clock,instructions
perf stat -e block:block_rq_issue ./my_application
perf record -g -e my_function ./my_application
perf report
perf mem record -t load ./my_application
perf mem report
perf stat -e context-switches -p < pid>
perf stat -e page-faults -p < pid>
perf mem record -t malloc,free ./my_application
perf mem report
perf stat -e cpu-cycles,cache-misses,branch-misses ./my_application
perf record -e page-faults ./my_application
perf report
perf trace -e syscalls:sys_enter_* ./my_application
perf stat -C < cpu_id> -e cycles,instructions ./my_application
perf stat -e bus-cycles,cache-references ./my_application
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf stat -e context-switches -p < pid>
perf record -e kmalloc -p < pid> ./my_kernel_module
perf report
perf stat -e cpu-temperature ./my_application
perf mem record -t load,store ./my_application
perf mem report
perf trace -e syscalls:sys_exit_* ./my_application
perf stat -p < pid> -e cpu-clock,instructions,cycles
perf mem record -t load ./my_application
perf mem report
perf stat -e block:block_rq_issue,block:block_rq_complete -p < pid>
perf stat -a -e cycles,instructions ./my_application
perf record -g -e my_function ./my_application
perf report
perf mem record -t malloc -a ./my_application
perf mem report
perf record -e irq:irq_handler_exit ./my_application
perf report
perf stat -e page-faults -p < pid>
perf stat -e cycles,instructions,cache-misses ./my_application
perf record -e context-switches ./my_application
perf report
perf record -e dcache-load-misses,dcache-store-misses ./my_application
perf report
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf record -g -e my_function ./my_application
perf report
perf mem record -t malloc ./my_application
perf mem report
perf stat -p < pid> -e cpu-clock,instructions
perf stat -e context-switches -p < pid>
perf trace -e syscalls:sys_enter_* ./my_application
perf stat -e cpu-frequency,cpu-temperature ./my_application
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf record -e irq:irq_handler_exit ./my_application
perf report
perf stat -e block:block_rq_issue,block:block_rq_complete -p < pid>
perf stat -a -e cycles,instructions ./my_application
perf mem record -t load,store ./my_application
perf mem report
perf stat -e context-switches -p < pid>
perf stat -e page-faults -p < pid>
perf stat -e bus-cycles,cache-references ./my_application
perf stat -e cpu-cycles,cache-misses,branch-misses ./my_application
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf trace -e syscalls:sys_enter_open,syscalls:sys_exit_open ./my_application
perf record -e cpu-cycles,instructions ./my_application
perf report
perf record -e malloc,free ./my_application
perf mem report
perf stat -p < pid> -e cpu-clock,context-switches
perf record -e dcache-load-misses ./my_application
perf report
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf stat -t < thread_id> -e cpu-clock,instructions
perf stat -e context-switches -a
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf record -e kmalloc -p < pid> ./my_kernel_module
perf report
perf stat -e cpu-cycles,cache-misses ./my_application
perf stat -e block:block_rq_issue,block:block_rq_complete -p < pid>
perf mem record -t load,store ./my_application
perf mem report
perf trace -e syscalls:sys_exit_* ./my_application
perf record -g -e my_function ./my_application
perf report
perf stat -e cpu-temperature ./my_application
perf stat -e context-switches -p < pid>
perf mem record -t malloc ./my_application
perf mem report
perf stat -a -e cycles,instructions ./my_application
perf stat -e cycles,instructions,cache-misses ./my_application
perf trace -e syscalls:sys_enter_* -e syscalls:sys_exit_* ./my_application
perf record -e cache-references,cache-misses ./my_application
perf report
perf stat -e context-switches -p < pid>
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf stat -e cpu-cycles,instructions,cache-misses ./my_application
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf stat -t < thread_id> -e cpu-clock,instructions
perf record -e malloc,free ./my_application
perf report
perf stat -a -e cycles,instructions ./my_application
perf record -e kmalloc -p < pid> ./my_kernel_module
perf report
perf record -e dcache-load-misses ./my_application
perf report
perf record -g -e my_function ./my_application
perf report
perf stat -e cpu-temperature ./my_application
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf stat -e cycles,instructions,cache-misses ./my_application
perf trace -e syscalls:sys_exit_* ./my_application
perf stat -e block:block_rq_issue,block:block_rq_complete -p < pid>
perf mem record -t load,store ./my_application
perf mem report
perf stat -e bus-cycles,cache-references ./my_application
perf stat -e context-switches -p < pid>
perf stat -a -e cpu-clock,task-clock ./my_application
perf record -e kmalloc -p < pid>
perf report
perf stat -e net:net_dev_queue,net:net_dev_xmit ./my_application
perf record -e syscalls:sys_enter_* -e syscalls:sys_exit_* ./my_application
perf script
perf stat -e dcache-load-misses,dcache-loads ./my_application
perf record -e cycles,instructions -g ./my_application
perf report
perf stat -e block:block_rq_issue,block:block_rq_complete ./my_application
perf stat -e context-switches -p < pid>
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf stat -e cpu-cycles,instructions,cache-misses ./my_application
perf stat -t < thread_id> -e cpu-clock,instructions
perf record -e malloc,free ./my_application
perf report
perf record -e dcache-load-misses ./my_application
perf report
perf record -g -e my_function ./my_application
perf report
perf stat -e cpu-temperature ./my_application
perf trace -e syscalls:sys_exit_* ./my_application
perf stat -e cycles,instructions,cache-misses ./my_application
perf stat -e page-faults,minor-faults,major-faults ./my_application
perf mem record -t load,store ./my_application
perf mem report
perf stat -e cpu-cycles,cache-misses ./my_application