这是命令 trace-cmd-profile 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
trace-cmd-profile - 实时运行的配置文件任务
概要
跟踪命令 轮廓 [配置] [命令]
商品描述
- 跟踪命令(1) profile 将开始跟踪就像 跟踪命令记录(1)、与
- 轮廓 选项,除了它不写入文件,而是读取
事件发生时,将更新事件的会计。 当跟踪是
完成,它会报告结果就像 跟踪命令报告(1) 会用它的
- 轮廓 选项。 也就是说,profile 命令完成了 trace-cmd 记录的工作
--profile 和 trace-cmd 报告 --profile 无需将数据记录到磁盘,在
之间。
使用 profile 命令的优点是分析可以在很长一段时间内完成
记录所有事件会占用太多磁盘空间的时间段。
这将启用多个事件以及深度为 XNUMX 的函数图跟踪器
(如果内核支持它)。 这是为了显示任务进入和退出内核的位置以及如何
他们在内核中的时间很长。
要禁用调用函数图,请使用 -p 选项以启用另一个跟踪器。 不
启用任何跟踪器,使用 -p NOP.
所有时间目前都以纳秒为单位。
配置
这些与 跟踪命令记录(1) 与 - 轮廓 选项。
-p 示踪
设置一个跟踪插件来运行,而不是将函数图跟踪设置为深度 1。不要
运行任何跟踪器,使用 -p NOP.
-S
仅启用命令行上指定的跟踪器或事件。 有了这个选项,
未启用 function_graph 跟踪器,也未启用任何事件(如 sched_switch),除非
它们在命令行上特别指定(即 -p function -e sched_switch
-e sched_wakeup)
-o 文件
将配置文件的输出写入 文件. 这取代 --标准错误
-H 事件挂钩
添加自定义事件匹配以将任意两个事件连接在一起。 格式为:
[ :] , [, ]/
[ :] , [, ]
start_system:start_event(start_system 是可选的),是
开始计时。
start_match 是开始事件中与
end_match 在结束事件中。
start_pid 是可选的,因为匹配项附加到运行的任务
事件,如果应该使用另一个字段来查找该任务,则
它由 start_pid 指定。
end_system:end_event 是结束计时的事件(end_system 是
可选的)。
end_match 是 end_match 中匹配开始事件字段的字段
开始匹配。
标志是可选的,可以是以下(不区分大小写):
p :两个事件被固定到同一个 CPU(开始和结束发生)
总是在同一个 CPU 上)。
s :事件应该有一个跟踪堆栈(启用堆栈跟踪
为开始事件)。
g :事件是全局的(与任务无关)。 start_pid 是
不适用于此标志。
(注意:'g' 尚未实现)
--标准错误
将输出重定向到 stderr。 正在执行的命令的输出不是
改变了。 这允许观察命令执行并保存配置文件的输出
到另一个文件。
示例
---
# trace-cmd 配置文件 -F sleep 1
[..]
任务:sleep-1121
事件:sched_switch:R (2) 总数:234559 平均值:117279 最大值:129886 最小值:104673
|
+ ftrace_raw_event_sched_switch (0xffffffff8109f310)
100% (2) 时间:234559 最大值:129886 分钟:104673 平均值:117279
__时间表(0xffffffff816c1e81)
preempt_schedule (0xffffffff816c236e)
___preempt_schedule (0xffffffff81351a59)
|
+ unmap_single_vma (0xffffffff81198c05)
| 55% (1) 时间:129886 最大值:129886 最小值:0 平均值:129886
| stop_one_cpu (0xffffffff8110909a)
| sched_exec (0xffffffff810a119b)
| do_execveat_common.isra.31 (0xffffffff811de528)
| do_execve (0xffffffff811dea8c)
| SyS_execve (0xffffffff811ded1e)
| 返回处理程序(0xffffffff816c8458)
| 存根_execve (0xffffffff816c6929)
|
+ unmap_single_vma (0xffffffff81198c05)
45% (1) 时间:104673 最大值:104673 分钟:0 平均值:104673
取消映射_vmas (0xffffffff81199174)
exit_mmap (0xffffffff811a1f5b)
毫米输入 (0xffffffff8107699a)
刷新_旧_执行(0xffffffff811ddb75)
load_elf_binary (0xffffffff812287df)
搜索二进制处理程序(0xffffffff811dd3e0)
do_execveat_common.isra.31 (0xffffffff811de8bd)
do_execve (0xffffffff811dea8c)
SyS_execve (0xffffffff811ded1e)
返回处理程序(0xffffffff816c8458)
存根_execve (0xffffffff816c6929)
事件:sched_switch:S (1) 总数:1000513242 平均值:1000513242 最大值:1000513242 最小值:1000513242
|
+ ftrace_raw_event_sched_switch (0xffffffff8109f310)
100% (1) 时间:1000513242 最大值:1000513242 分钟:0 平均值:1000513242
__时间表(0xffffffff816c1e81)
时间表 (0xffffffff816c23b9)
do_nanosleep (0xffffffff816c4f1c)
hrtimer_nanosleep (0xffffffff810dcd86)
SyS_nanosleep (0xffffffff810dcea6)
返回处理程序(0xffffffff816c8458)
tracesys_phase2 (0xffffffff816c65b0)
事件:sched_wakeup:1121 (1) 总数:43405 平均值:43405 最大值:43405 最小值:43405
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (1) 时间:43405 最大值:43405 分钟:0 平均值:43405
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
唤醒进程(0xffffffff810a4057)
hrtimer_wakeup (0xffffffff810db772)
__run_hrtimer (0xffffffff810dbd91)
hrtimer_中断(0xffffffff810dc6b7)
local_apic_timer_interrupt (0xffffffff810363e7)
smp_trace_apic_timer_interrupt(0xffffffff816c8c6a)
跟踪_apic_定时器_中断(0xffffffff816c725a)
Finish_task_switch (0xffffffff8109c3a4)
__时间表(0xffffffff816c1e01)
时间表 (0xffffffff816c23b9)
环缓冲区等待(0xffffffff811323a3)
wait_on_pipe (0xffffffff81133d93)
trace_buffers_splice_read (0xffffffff811350b0)
do_splice_to (0xffffffff8120476f)
SyS_splice (0xffffffff81206c1f)
tracesys_phase2 (0xffffffff816c65b0)
事件:func:sys_nanosleep() (1) 总数:1000598016 平均值:1000598016 最大值:1000598016 最小值:1000598016
事件:func:sys_munmap() (1) 总数:14300 平均值:14300 最大值:14300 最小值:14300
事件:func:sys_arch_prctl() (1) 总数:571 平均值:571 最大值:571 最小值:571
事件:func:sys_mprotect() (4) 总数:14382 平均值:3595 最大值:7196 最小值:2190
事件:func:SyS_read() (1) 总计:2640 平均:2640 最大值:2640 最小值:2640
事件:func:sys_close() (5) 总数:4001 平均值:800 最大值:1252 最小值:414
事件:func:sys_newfstat() (3) 总数:11684 平均值:3894 最大值:10206 最小值:636
事件:func:SyS_open() (3) 总数:23615 平均值:7871 最大值:10535 最小值:4743
事件:func:sys_access() (1) 总数:5924 平均值:5924 最大值:5924 最小值:5924
事件:func:SyS_mmap() (8) 总数:39153 平均值:4894 最大值:12354 最小值:1518
事件:func:smp_trace_apic_timer_interrupt() (1) 总数:10298 平均值:10298 最大值:10298 最小值:10298
事件:func:SyS_brk() (4) 总数:2407 平均值:601 最大值:1564 最小值:206
事件:func:do_notify_resume() (2) 总计:4095 平均:2047 最大值:2521 最小值:1574
事件:func:sys_execve() (5) 总数:1625251 平均值:325050 最大值:1605698 最小值:3570
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (1) 时间:1605698 最大值:1605698 分钟:0 平均值:1605698
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
唤醒进程(0xffffffff810a4057)
cpu_stop_queue_work (0xffffffff81108df8)
stop_one_cpu (0xffffffff8110909a)
sched_exec (0xffffffff810a119b)
do_execveat_common.isra.31 (0xffffffff811de528)
do_execve (0xffffffff811dea8c)
SyS_execve (0xffffffff811ded1e)
返回处理程序(0xffffffff816c8458)
存根_execve (0xffffffff816c6929)
存根_execve (0xffffffff816c6929)
事件:func:syscall_trace_enter_phase2() (38) 总计:21544 平均:566 最大值:1066 最小值:329
事件:func:syscall_trace_enter_phase1() (38) 总计:9202 平均:242 最大值:376 最小值:150
事件:func:__do_page_fault() (53) 总计:257672 平均:4861 最大值:27745 最小值:458
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (1) 时间:27745 最大值:27745 分钟:0 平均值:27745
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
默认唤醒功能(0xffffffff810a4002)
自动删除唤醒函数(0xffffffff810b50fd)
__wake_up_common (0xffffffff810b4958)
__唤醒(0xffffffff810b4cb8)
rb_wake_up_waiters (0xffffffff8112f126)
irq_work_run_list (0xffffffff81157d0f)
irq_work_run (0xffffffff81157d5e)
smp_trace_irq_work_interrupt(0xffffffff810082fc)
跟踪_irq_工作_中断(0xffffffff816c7aaa)
返回处理程序(0xffffffff816c8458)
跟踪_do_page_fault(0xffffffff810478b2)
跟踪页面错误(0xffffffff816c7dd2)
事件:func:syscall_trace_leave() (38) 总计:26145 平均:688 最大值:1264 最小值:381
事件:func:__sb_end_write() (1) 总计:373 平均:373 最大值:373 最小值:373
事件:func:fsnotify() (1) 总数:598 平均:598 最大值:598 最小值:598
事件:func:__fsnotify_parent() (1) 总计:286 平均:286 最大值:286 最小值:286
事件:func:mutex_unlock() (2) 总数:39636 平均值:19818 最大值:39413 最小值:223
事件:func:smp_trace_irq_work_interrupt() (6) 总数:236459 平均值:39409 最大值:100671 最小值:634
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (4) 时间:234348 最大值:100671 分钟:38745 平均值:58587
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
默认唤醒功能(0xffffffff810a4002)
自动删除唤醒函数(0xffffffff810b50fd)
__wake_up_common (0xffffffff810b4958)
__唤醒(0xffffffff810b4cb8)
rb_wake_up_waiters (0xffffffff8112f126)
irq_work_run_list (0xffffffff81157d0f)
irq_work_run (0xffffffff81157d5e)
smp_trace_irq_work_interrupt(0xffffffff810082fc)
返回处理程序(0xffffffff816c8458)
跟踪_irq_工作_中断(0xffffffff816c7aaa)
|
+ ftrace_return_to_handler (0xffffffff81140840)
| 84% (3) 时间:197396 最大值:100671 最小值:38745 平均值:65798
| 返回处理程序(0xffffffff816c846d)
| 跟踪页面错误(0xffffffff816c7dd2)
|
+ ftrace_return_to_handler (0xffffffff81140840)
16% (1) 时间:36952 最大值:36952 分钟:0 平均值:36952
ftrace_graph_caller (0xffffffff816c8428)
互斥锁 (0xffffffff816c3f75)
rb_simple_write (0xffffffff81133142)
vfs_write (0xffffffff811d7727)
SyS_write (0xffffffff811d7acf)
tracesys_phase2 (0xffffffff816c65b0)
事件:sys_enter:35 (1) 总数:1000599765 平均值:1000599765 最大值:1000599765 最小值:1000599765
事件:sys_enter:11 (1) 总数:55025 平均值:55025 最大值:55025 最小值:55025
事件:sys_enter:158 (1) 总数:1584 平均值:1584 最大值:1584 最小值:1584
事件:sys_enter:10 (4) 总数:18359 平均值:4589 最大值:8764 最小值:2933
事件:sys_enter:0 (1) 总数:4223 平均值:4223 最大值:4223 最小值:4223
事件:sys_enter:3 (5) 总数:9948 平均值:1989 最大值:2606 最小值:1203
事件:sys_enter:5 (3) 总数:15530 平均值:5176 最大值:11840 最小值:1405
事件:sys_enter:2 (3) 总数:28002 平均值:9334 最大值:12035 最小值:5656
事件:sys_enter:21 (1) 总数:7814 平均值:7814 最大值:7814 最小值:7814
事件:sys_enter:9 (8) 总数:49583 平均值:6197 最大值:14137 最小值:2362
事件:sys_enter:12 (4) 总数:108493 平均值:27123 最大值:104079 最小值:922
事件:sys_enter:59 (5) 总数:1631608 平均值:326321 最大值:1607529 最小值:4563
Event: page_fault_user:0x398d86b630 (1)
Event: page_fault_user:0x398d844de0 (1)
Event: page_fault_user:0x398d8d9020 (1)
事件:page_fault_user:0x1d37008 (1)
Event: page_fault_user:0x7f0b89e91074 (1)
Event: page_fault_user:0x7f0b89d98ed0 (1)
Event: page_fault_user:0x7f0b89ec8950 (1)
Event: page_fault_user:0x7f0b89d83644 (1)
Event: page_fault_user:0x7f0b89d622a8 (1)
Event: page_fault_user:0x7f0b89d5a560 (1)
Event: page_fault_user:0x7f0b89d34010 (1)
事件:page_fault_user:0x1d36008 (1)
事件:page_fault_user:0x398d900510 (1)
Event: page_fault_user:0x398dbb3ae8 (1)
Event: page_fault_user:0x398d87f490 (1)
Event: page_fault_user:0x398d8eb660 (1)
Event: page_fault_user:0x398d8bd730 (1)
Event: page_fault_user:0x398d9625d9 (1)
事件:page_fault_user:0x398d931810 (1)
事件:page_fault_user:0x398dbb7114 (1)
事件:page_fault_user:0x398d837610 (1)
Event: page_fault_user:0x398d89e860 (1)
Event: page_fault_user:0x398d8f23b0 (1)
事件:page_fault_user:0x398dbb4510 (1)
Event: page_fault_user:0x398dbad6f0 (1)
事件:page_fault_user:0x398dbb1018 (1)
Event: page_fault_user:0x398d977b37 (1)
Event: page_fault_user:0x398d92eb60 (1)
Event: page_fault_user:0x398d8abff0 (1)
Event: page_fault_user:0x398dbb0d30 (1)
Event: page_fault_user:0x398dbb6c24 (1)
Event: page_fault_user:0x398d821c50 (1)
Event: page_fault_user:0x398dbb6c20 (1)
事件:page_fault_user:0x398d886350 (1)
Event: page_fault_user:0x7f0b90125000 (1)
Event: page_fault_user:0x7f0b90124740 (1)
Event: page_fault_user:0x7f0b90126000 (1)
事件:page_fault_user:0x398d816230 (1)
Event: page_fault_user:0x398d8002b8 (1)
Event: page_fault_user:0x398dbb0b40 (1)
事件:page_fault_user:0x398dbb2880 (1)
Event: page_fault_user:0x7f0b90141cc6 (1)
Event: page_fault_user:0x7f0b9013b85c (1)
Event: page_fault_user:0x7f0b90127000 (1)
事件:page_fault_user:0x606e70 (1)
Event: page_fault_user:0x7f0b90144010 (1)
Event: page_fault_user:0x7fffcb31b038 (1)
事件:page_fault_user:0x606da8 (1)
事件:page_fault_user:0x400040 (1)
事件:page_fault_user:0x398d222218 (1)
事件:page_fault_user:0x398d015120 (1)
Event: page_fault_user:0x398d220ce8 (1)
Event: page_fault_user:0x398d220b80 (1)
Event: page_fault_user:0x7fffcb2fcff8 (1)
事件:page_fault_user:0x398d001590 (1)
事件:page_fault_user:0x398d838490 (1)
事件:softirq_raise:RCU (3) 总数:252931 平均值:84310 最大值:243288 最小值:4639
事件:softirq_raise:SCHED (2) 总数:241249 平均值:120624 最大值:239076 最小值:2173
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (1) 时间:239076 最大值:239076 分钟:0 平均值:239076
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
默认唤醒功能(0xffffffff810a4002)
自动删除唤醒函数(0xffffffff810b50fd)
__wake_up_common (0xffffffff810b4958)
__唤醒(0xffffffff810b4cb8)
rb_wake_up_waiters (0xffffffff8112f126)
irq_work_run_list (0xffffffff81157d0f)
irq_work_run (0xffffffff81157d5e)
smp_trace_irq_work_interrupt(0xffffffff810082fc)
跟踪_irq_工作_中断(0xffffffff816c7aaa)
irq_退出(0xffffffff8107dd66)
smp_trace_apic_timer_interrupt(0xffffffff816c8c7a)
跟踪_apic_定时器_中断(0xffffffff816c725a)
准备_ftrace_返回(0xffffffff8103d4fd)
ftrace_graph_caller (0xffffffff816c8428)
mem_cgroup_begin_page_stat (0xffffffff811cfd25)
page_remove_rmap (0xffffffff811a4fc5)
存根_execve (0xffffffff816c6929)
unmap_single_vma (0xffffffff81198b1c)
取消映射_vmas (0xffffffff81199174)
exit_mmap (0xffffffff811a1f5b)
毫米输入 (0xffffffff8107699a)
刷新_旧_执行(0xffffffff811ddb75)
load_elf_binary (0xffffffff812287df)
搜索二进制处理程序(0xffffffff811dd3e0)
do_execveat_common.isra.31 (0xffffffff811de8bd)
do_execve (0xffffffff811dea8c)
SyS_execve (0xffffffff811ded1e)
返回处理程序(0xffffffff816c8458)
事件:softirq_raise:HI (3) 总数:72472 平均值:24157 最大值:64186 最小值:3430
事件:softirq_entry:RCU (2) 总计:3191 平均:1595 最大值:1788 最小值:1403
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (1) 时间:1788 最大值:1788 分钟:0 平均值:1788
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
默认唤醒功能(0xffffffff810a4002)
自动删除唤醒函数(0xffffffff810b50fd)
__wake_up_common (0xffffffff810b4958)
__唤醒(0xffffffff810b4cb8)
rb_wake_up_waiters (0xffffffff8112f126)
irq_work_run_list (0xffffffff81157d0f)
irq_work_run (0xffffffff81157d5e)
smp_trace_irq_work_interrupt(0xffffffff810082fc)
跟踪_irq_工作_中断(0xffffffff816c7aaa)
irq_work_queue(0xffffffff81157e95)
ring_buffer_unlock_commit (0xffffffff8113039f)
__buffer_unlock_commit (0xffffffff811367d5)
跟踪缓冲区解锁提交(0xffffffff811376a2)
ftrace_event_buffer_commit (0xffffffff81146d5f)
ftrace_raw_event_sched_process_exec (0xffffffff8109c511)
do_execveat_common.isra.31 (0xffffffff811de9a3)
do_execve (0xffffffff811dea8c)
SyS_execve (0xffffffff811ded1e)
返回处理程序(0xffffffff816c8458)
存根_execve (0xffffffff816c6929)
事件:softirq_entry:SCHED (2) 总数:2289 平均:1144 最大值:1350 最小值:939
事件:softirq_entry:HI (3) 总数:180146 平均值:60048 最大值:178969 最小值:499
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (1) 时间:178969 最大值:178969 分钟:0 平均值:178969
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
唤醒进程(0xffffffff810a4057)
唤醒工人(0xffffffff8108de74)
插入工作(0xffffffff8108fca6)
__queue_work(0xffffffff8108fe12)
delay_work_timer_fn (0xffffffff81090088)
call_timer_fn (0xffffffff810d8f89)
运行定时器软中断(0xffffffff810da8a1)
__do_软中断(0xffffffff8107d8fa)
irq_退出(0xffffffff8107dd66)
smp_trace_apic_timer_interrupt(0xffffffff816c8c7a)
跟踪_apic_定时器_中断(0xffffffff816c725a)
准备_ftrace_返回(0xffffffff8103d4fd)
ftrace_graph_caller (0xffffffff816c8428)
mem_cgroup_begin_page_stat (0xffffffff811cfd25)
page_remove_rmap (0xffffffff811a4fc5)
存根_execve (0xffffffff816c6929)
unmap_single_vma (0xffffffff81198b1c)
取消映射_vmas (0xffffffff81199174)
exit_mmap (0xffffffff811a1f5b)
毫米输入 (0xffffffff8107699a)
刷新_旧_执行(0xffffffff811ddb75)
load_elf_binary (0xffffffff812287df)
搜索二进制处理程序(0xffffffff811dd3e0)
do_execveat_common.isra.31 (0xffffffff811de8bd)
do_execve (0xffffffff811dea8c)
SyS_execve (0xffffffff811ded1e)
返回处理程序(0xffffffff816c8458)
---
以上使用 -F 跟随睡眠任务。 它仅过滤与以下相关的事件
睡觉。 请注意,为了跟踪分叉,您还需要包括 -c 旗。
如果事件引用多个任务,其他任务也会出现在配置文件中
(就像 sched_switch 和 sched_wakeup 一样。sched_switch 的“prev_pid”和“next_pid”,以及
sched_wakeup 的“common_pid”和“pid”)。
堆栈跟踪附加到与其相关的事件。
看一下上面的输出:
事件:sched_switch:R (2) 总数:234559 平均值:117279 最大值:129886 最小值:104673
这表明任务被抢占(它正在运行 R 状态)。 被抢占两次
(2) 总共 234,559 纳秒,平均抢占时间为 117,279 ns,以及
最大值为 128,886 ns,最小值为 104,673 ns。
树显示它被抢占的位置:
|
+ ftrace_raw_event_sched_switch (0xffffffff8109f310)
100% (2) 时间:234559 最大值:129886 分钟:104673 平均值:117279
__时间表(0xffffffff816c1e81)
preempt_schedule (0xffffffff816c236e)
___preempt_schedule (0xffffffff81351a59)
|
+ unmap_single_vma (0xffffffff81198c05)
| 55% (1) 时间:129886 最大值:129886 最小值:0 平均值:129886
| stop_one_cpu (0xffffffff8110909a)
| sched_exec (0xffffffff810a119b)
| do_execveat_common.isra.31 (0xffffffff811de528)
| do_execve (0xffffffff811dea8c)
| SyS_execve (0xffffffff811ded1e)
| 返回处理程序(0xffffffff816c8458)
| 存根_execve (0xffffffff816c6929)
|
+ unmap_single_vma (0xffffffff81198c05)
45% (1) 时间:104673 最大值:104673 分钟:0 平均值:104673
取消映射_vmas (0xffffffff81199174)
exit_mmap (0xffffffff811a1f5b)
毫米输入 (0xffffffff8107699a)
刷新_旧_执行(0xffffffff811ddb75)
load_elf_binary (0xffffffff812287df)
搜索二进制处理程序(0xffffffff811dd3e0)
do_execveat_common.isra.31 (0xffffffff811de8bd)
do_execve (0xffffffff811dea8c)
SyS_execve (0xffffffff811ded1e)
返回处理程序(0xffffffff816c8458)
存根_execve (0xffffffff816c6929)
事件:sched_switch:S (1) 总数:1000513242 平均值:1000513242 最大值:1000513242 最小值:10005132
这表明该任务在 INTERRUPTIBLE 状态下被调度了一次,总共有
1,000,513,242 ns (~1s),这是有道理的,因为任务是“睡眠 1”。
在计划事件之后,显示函数事件。 默认情况下,探查器将使用
如果内核支持深度设置,则为函数图跟踪器。 它将设置
深度为一个,只会跟踪进入内核的第一个函数。 它也会
记录它在内核中的时间。
事件:func:sys_nanosleep() (1) 总数:1000598016 平均值:1000598016 最大值:1000598016 最小值:1000598016
事件:func:sys_munmap() (1) 总数:14300 平均值:14300 最大值:14300 最小值:14300
事件:func:sys_arch_prctl() (1) 总数:571 平均值:571 最大值:571 最小值:571
事件:func:sys_mprotect() (4) 总数:14382 平均值:3595 最大值:7196 最小值:2190
事件:func:SyS_read() (1) 总计:2640 平均:2640 最大值:2640 最小值:2640
事件:func:sys_close() (5) 总数:4001 平均值:800 最大值:1252 最小值:414
事件:func:sys_newfstat() (3) 总数:11684 平均值:3894 最大值:10206 最小值:636
事件:func:SyS_open() (3) 总数:23615 平均值:7871 最大值:10535 最小值:4743
事件:func:sys_access() (1) 总数:5924 平均值:5924 最大值:5924 最小值:5924
事件:func:SyS_mmap() (8) 总数:39153 平均值:4894 最大值:12354 最小值:1518
事件:func:smp_trace_apic_timer_interrupt() (1) 总数:10298 平均值:10298 最大值:10298 最小值:10298
事件:func:SyS_brk() (4) 总数:2407 平均值:601 最大值:1564 最小值:206
事件:func:do_notify_resume() (2) 总计:4095 平均:2047 最大值:2521 最小值:1574
事件:func:sys_execve() (5) 总数:1625251 平均值:325050 最大值:1605698 最小值:3570
事件被击中的次数总是在括号中 (5).
函数图跟踪可能会产生过多的开销,因为它仍在触发(只是不
跟踪)在所有功能上。 要将功能仅限于系统调用(而不是中断),请添加
以下选项:
-l '系统_*' -l '系统_*'
要完全禁用函数图跟踪,请使用:
-p 无
改用函数跟踪(注意,这不会记录时间,而只会记录
函数被击中的次数):
-p 函数
在函数之后是记录的事件。
事件:sys_enter:35 (1) 总数:1000599765 平均值:1000599765 最大值:1000599765 最小值:1000599765
事件:sys_enter:11 (1) 总数:55025 平均值:55025 最大值:55025 最小值:55025
事件:sys_enter:158 (1) 总数:1584 平均值:1584 最大值:1584 最小值:1584
事件:sys_enter:10 (4) 总数:18359 平均值:4589 最大值:8764 最小值:2933
事件:sys_enter:0 (1) 总数:4223 平均值:4223 最大值:4223 最小值:4223
事件:sys_enter:3 (5) 总数:9948 平均值:1989 最大值:2606 最小值:1203
事件:sys_enter:5 (3) 总数:15530 平均值:5176 最大值:11840 最小值:1405
事件:sys_enter:2 (3) 总数:28002 平均值:9334 最大值:12035 最小值:5656
事件:sys_enter:21 (1) 总数:7814 平均值:7814 最大值:7814 最小值:7814
事件:sys_enter:9 (8) 总数:49583 平均值:6197 最大值:14137 最小值:2362
事件:sys_enter:12 (4) 总数:108493 平均值:27123 最大值:104079 最小值:922
事件:sys_enter:59 (5) 总数:1631608 平均值:326321 最大值:1607529 最小值:4563
这些是原始系统调用事件,在“sys_enter:”之后是原始系统调用 ID
例如,“59”是 执行(2). 为什么它执行了5次? 看着这个痕迹
运行,我们可以看到:
execve("/usr/lib64/ccache/sleep", ["sleep", "1"], [/* 27 个变量 */]
<... execve resumed> ) = -1 ENOENT(没有那个文件或目录)
execve("/usr/local/sbin/sleep", ["sleep", "1"], [/* 27 个变量 */]
<... execve resumed> ) = -1 ENOENT(没有那个文件或目录)
execve("/usr/local/bin/sleep", ["sleep", "1"], [/* 27 个变量 */]
<... execve resumed> ) = -1 ENOENT(没有那个文件或目录)
execve("/usr/sbin/sleep", ["sleep", "1"], [/* 27 个变量 */]
<... execve resumed> ) = -1 ENOENT(没有那个文件或目录)
execve("/usr/bin/sleep", ["sleep", "1"], [/* 27 个变量 */]
<... execve 恢复> ) = 0
它试图为 $PATH 中的每个路径执行“sleep”命令,直到找到一个。
page_fault_user 事件显示发生页面错误的用户空间地址。
事件:softirq_raise:RCU (3) 总数:252931 平均值:84310 最大值:243288 最小值:4639
事件:softirq_raise:SCHED (2) 总数:241249 平均值:120624 最大值:239076 最小值:2173
|
+ ftrace_raw_event_sched_wakeup_template (0xffffffff8109d960)
100% (1) 时间:239076 最大值:239076 分钟:0 平均值:239076
ttwu_do_wakeup (0xffffffff810a01a2)
ttwu_do_activate.constprop.122 (0xfffffff810a0236)
尝试唤醒(0xffffffff810a3ec3)
默认唤醒功能(0xffffffff810a4002)
自动删除唤醒函数(0xffffffff810b50fd)
__wake_up_common (0xffffffff810b4958)
__唤醒(0xffffffff810b4cb8)
rb_wake_up_waiters (0xffffffff8112f126)
irq_work_run_list (0xffffffff81157d0f)
irq_work_run (0xffffffff81157d5e)
smp_trace_irq_work_interrupt(0xffffffff810082fc)
跟踪_irq_工作_中断(0xffffffff816c7aaa)
irq_退出(0xffffffff8107dd66)
softirq_raise 事件的计时测量从引发的 softirq 花费的时间
到它执行的时间。
softirq_entry 事件的计时测量 softirq 执行的时间。
当事件具有
堆栈附加到它。 如果配置文件运行的堆栈多于 sched,则可能会发生这种情况
事件,或者当事件被丢弃并堆叠时
要完全控制跟踪的内容,请使用 -S 将没有 trace-cmd 的选项
启用任何事件或 function_graph 跟踪器。 仅在命令行上列出的事件
显示。
如果只需要查看 kmalloc 的时间以及记录的位置,则使用 -S
选项并仅为所需的函数启用 function_graph 和堆栈跟踪将
仅给出该函数的配置文件。
---
# trace-cmd profile -S -p function_graph -l '*kmalloc*' -l '*kmalloc*:stacktrace' sleep 1
任务:sshd-11786
事件:func:__kmalloc_reserve.isra.59() (2) 总数:149684 平均值:74842 最大值:75598 最小值:74086
|
+ __alloc_skb (0xffffffff815a8917)
| 67% (2) 时间:149684 最大值:75598 最小值:74086 平均值:74842
| __kmalloc_node_track_caller (0xffffffff811c6635)
| __kmalloc_reserve.isra.59 (0xffffffff815a84ac)
| 返回处理程序(0xffffffff816c8458)
| sk_stream_alloc_skb (0xffffffff81604ea1)
| tcp_sendmsg (0xffffffff8160592c)
| inet_sendmsg (0xffffffff8162fed1)
| sock_aio_write (0xffffffff8159f9fc)
| do_sync_write (0xffffffff811d694a)
| vfs_write (0xffffffff811d7825)
| SyS_write (0xffffffff811d7adf)
| 系统调用快速路径(0xffffffff816c63d2)
|
+ __alloc_skb (0xffffffff815a8917)
33% (1) 时间:74086 最大值:74086 分钟:74086 平均值:74086
__alloc_skb (0xffffffff815a8917)
sk_stream_alloc_skb (0xffffffff81604ea1)
tcp_sendmsg (0xffffffff8160592c)
inet_sendmsg (0xffffffff8162fed1)
sock_aio_write (0xffffffff8159f9fc)
do_sync_write (0xffffffff811d694a)
vfs_write (0xffffffff811d7825)
SyS_write (0xffffffff811d7adf)
系统调用快速路径(0xffffffff816c63d2)
[..]
---
要查看命令运行但将配置文件的输出保存到文件中,请使用 --stderr,和
将 stderr 重定向到文件
# trace-cmd profile --stderr cyclictest -p 80 -n -t1 2> profile.out
或者简单的使用 -o
# trace-cmd profile -o profile.out 循环测试 -p 80 -n -t1
使用 onworks.net 服务在线使用 trace-cmd-profile