perf

适用于Linux的性能分析工具

语法

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

所有perf子命令都需要以root身份运行(sudo)

实例

显示使用最多CPU的程序:

$ sudo perf top

top显示cpu使用49%示例:

$ sudo perf top -F 49

启动COMMAND并对其进行分析

$ sudo perf record COMMAND

配置文件PID,直到Ctrl-C按下:

$ sudo perf record PID

配置每个进程,直到按下Ctrl-C:

$ sudo perf record -a

COMPAND的CPU计数器统计信息

$ sudo perf stat COMMAND

详细的CPU计数器统计COMMAND :

$ sudo perf stat -ddd COMMAND

各种基本CPU统计系统:

$ sudo perf stat -e cycles,instructions,cache-misses -a

在ncurses浏览器中显示perf.data

$ sudo perf report

系统跟踪系统调用:

$ sudo perf trace

跟踪PID的系统调用:

$ sudo perf trace -p PID

示例CPU函数用于99 Hzertz命令:

$ sudo perf record -F 99 COMMAND

示例PID的 CPU函数,直到按下Ctrl-C

$ sudo perf record -p PID

为PID采样CPU函数10秒

$ sudo perf record -p PID sleep 10

为PID采样CPU堆栈跟踪10秒:

$ sudo perf record -p PID -g -- sleep 10

跟踪新进程,直到按住Ctrl-C:

$ sudo perf record -e sched:sched_process_exec -a

perf可以比strace更快地跟踪系统调用。

perf记录保存到perf.data文件

perf 命令实例:

linux命令:perfmon.msc perfmon.msc perfmon.mscrootopen.com
linux命令:perfmon.msc perfmon.msc perfmon.mscrootopen.com
2018-06-05 03:19:48

linux命令:perf stat -e exceptions:page_fault_user --filter "address > 0xffff000000000000" 0xffff000000000000" > "address --filter exceptions:page_fault_user -e stat perf perf stat -e exceptions:page_fault_user --filter "address > 0xffff000000000000"rootopen.com
linux命令:perf stat -e exceptions:page_fault_user --filter "address > 0xffff000000000000" 0xffff000000000000" > "address --filter exceptions:page_fault_user -e stat perf perf stat -e exceptions:page_fault_user --filter "address > 0xffff000000000000"rootopen.com
2018-01-04 10:22:48

linux命令:perf stat -r 10 sh -c "mysql > /dev/null < query.sql" query.sql" < /dev/null > "mysql -c sh 10 -r stat perf perf stat -r 10 sh -c "mysql > /dev/null < query.sql"rootopen.com
linux命令:perf stat -r 10 sh -c "mysql > /dev/null < query.sql" query.sql" < /dev/null > "mysql -c sh 10 -r stat perf perf stat -r 10 sh -c "mysql > /dev/null < query.sql"rootopen.com
2018-05-24 02:35:48

Linux的Bash命令行(A-Z排序)