记录并直观呈现轨迹

本页介绍了如何使用 Fuchsia 跟踪系统在 Fuchsia 设备上记录和可视化轨迹。

前提条件

许多现有的 Fuchsia 组件已注册为轨迹提供程序,其轨迹数据通常可提供充分的系统概览。因此,如果您只需要记录一般轨迹(例如,在 bug 报告中包含详细信息),可以继续阅读以下部分。不过,如果您想从特定组件收集其他自定义跟踪事件,则需要先完成以下任务:

记录轨迹

如需从宿主机在 Fuchsia 设备上记录轨迹,请运行以下命令:

ffx trace start --duration <SECONDS>

此命令会使用默认设置启动轨迹,捕获目标设备的总体概览。

轨迹会持续指定的时间(如果未指定时长,则直到按下 ENTER 键为止)。跟踪完成后,跟踪数据会自动保存到当前目录中的 trace.fxt 文件中(如果使用 --compressed 标志,则保存到 trace.fxt.zst 中;您还可以使用 --output 标志指定自定义文件名,例如 ffx trace start --output <FILE_PATH>)。如需直观呈现此文件中存储的跟踪结果,请参阅下文中的直观呈现跟踪记录部分。

直观呈现轨迹

Fuchsia 跟踪格式 (.fxt) 是 Fuchsia 的二进制格式,可直接对原始跟踪数据进行编码。如需直观呈现 .fxt(或 .fxt.zst 压缩)轨迹文件,您可以使用 Perfetto 查看器。

您可以使用以下任一方法直观呈现轨迹结果:

  • 上传到 GCS:在记录时传递 --upload 标志(例如,ffx trace start --upload)。跟踪记录完成后,系统会将跟踪记录上传到 Google Cloud Storage (GCS),并在输出中显示指向 Perfetto Trace Viewer 的直接链接。
  • 手动打开本地文件:
    1. 在网络浏览器中访问 Perfetto 查看器网站。
    2. 点击导航栏中的 Open trace file。
    3. 从宿主机中选择 .fxt 或 .fxt.zst 文件。

您还可以使用 SQL 查询此查看器中的轨迹数据。如需了解实用的查询方法和自动化问题排查工具,请参阅使用 PerfettoSQL 和 fx perf-analyze 分析轨迹。

类别

通过类别,您可以控制要查看哪些事件。例如:

  • 使用所有默认类别以及“cat”进行跟踪:
  ffx trace start --categories '#default,cat'
  • 不含默认设置的轨迹,仅包含调度程序和线程/进程数据:
  ffx trace start --categories "kernel:sched,kernel:meta"

实用类别

kernel:sched + kernel:meta

详细了解每个 CPU 上运行的内容

kernel:sched 信息

kernel:ipc

为每个 FIDL 调用发出一个事件,并将这些事件与流程相关联

内核:IPC 信息

内核:系统调用

针对每个系统调用在整个系统范围内发出事件

gfx 信息

gfx

查看帧计时细分数据

gfx 信息