# 分析工具

Source: [https://docs.qualcomm.com/doc/80-70014-10Y/topic/13-performance_tools.html](https://docs.qualcomm.com/doc/80-70014-10Y/topic/13-performance_tools.html)

分析工具用于检查 CPU 性能。

### 函数跟踪器 (ftrace)

- ftrace 工具专为深入探查内核操作而设计。
- ftrace 用于调试或分析延迟和性能问题。
- ftrace 还可用作跟踪工具，收集内核空间跟踪数据进行分析。

要收集 ftrace，按以下步骤操作：

1. 要启用跟踪事件，可从 SSH shell 运行以下命令：

        mount -t debugfs none /sys/kernel/debugCopy to clipboard

        echo 0 > /sys/kernel/tracing/tracing_onCopy to clipboard

        echo 25600 > /sys/kernel/tracing/buffer_size_kbCopy to clipboard

        echo "" > /sys/kernel/tracing/set_eventCopy to clipboard

        echo "" > /sys/kernel/tracing/traceCopy to clipboard
2. 要查看可用事件，可运行以下命令：

        cat /sys/kernel/tracing/available_eventsCopy to clipboard
3. 要启用所需事件（例如调度器跟踪），可运行以下命令：

        echo 1 > /sys/kernel/tracing/events/sched/sched_wakeup_new/enableCopy to clipboard

        echo 1 > /sys/kernel/tracing/events/sched/sched_waking/enableCopy to clipboard

        echo 1 > /sys/kernel/tracing/events/sched/sched_switch/enableCopy to clipboard
4. 要查看设定事件，可运行以下命令：

        cat /sys/kernel/debug/tracing/set_eventCopy to clipboard
5. 要启动跟踪，可运行以下命令：

        echo 1 > /sys/kernel/tracing/tracing_onCopy to clipboard
6. 运行用例。
7. 要在用例后停止跟踪，可运行以下命令：

        echo 0 > /sys/kernel/tracing/tracing_onCopy to clipboard
8. 要保存跟踪，可运行以下命令：

        cat /sys/kernel/tracing/trace > /opt/ftrace.txtCopy to clipboard
9. 要将 ftrace 从目标拉向主机，可使用 SCP 或类似工具。以下是示例命令：

        scp -r root@10.92.162.185:/opt/ftrace.txt /local/mnt/workspace/logsCopy to clipboard

Note: 确保在此命令中指定目标 IP 地址。

有关 ftrace 的更多信息，可访问 [https://www.kernel.org/doc/html/v4.17/trace/ftrace.html](https://www.kernel.org/doc/html/v4.17/trace/ftrace.html)。

### 下一代 Linux 跟踪工具套件 (LTTng)

- LTTng 是一款开源跟踪工具。
- 用于同时跟踪 Linux 内核和用户空间。

有关 LTTng 的更多信息，可访问 [https://lttng.org/docs/v2.13/](https://lttng.org/docs/v2.13/)。

### Eclipse 的 Trace Compass

- Trace Compass 是一款开源工具，可提供图形视图，用以分析性能问题。
- 它可以解析包括 ftrace 和 LTTng 在内的多种跟踪类型，并可视化以下内容：
    - 内核资源
    - 内核控制流
    - 用户空间标记

Trace Compass 是一款主机应用，需要 Java 虚拟机才能在主机上工作。如需了解更多信息，可访问 [https://projects.eclipse.org/projects/tools.tracecompass](https://projects.eclipse.org/projects/tools.tracecompass)。

### Qualcomm Profiler

- Qualcomm® Profiler CLI 是一个命令行界面工具。
- 可将其用作性能分析工具，以在整个 Qualcomm 片上系统 (SoC) 范围内发掘、评测及优化应用扩展的改进机会。
- 它支持 CPU、process、memory 和 I/O 分析指标。

Note: 设备必须连接到 Windows 主机才能运行 Qualcomm Profiler。

将 Qualcomm Profiler 工具从 [Qualcomm Software Center (QSC)](https://softwarecenter.qualcomm.com/#/) 下载到主机。其安装位置为 C:\Program Files(x86)\Qualcomm\Shared\QualcommProfiler\API\target-le。

使用 QSC 安装完 Qualcomm Profiler 后，使用指定路径中提供的以下文档进行设置：
- C:\Program Files (x86)\Qualcomm\Shared\QualcommProfiler\API\documents\Readme.txt
- C:\Program Files (x86)\Qualcomm\Shared\QualcommProfiler\API\documents\80-54323-2\_AE\_Qualcomm\_Profiler\_CLI\_UG.pdf

如需了解更多信息，参见[面向 Linux 的 Qualcomm Profiler CLI](https://docs.qualcomm.com/bundle/publicresource/topics/80-54323-3/getting-started.html)。

### Perf 工具

- Perf 工具是 Linux 中的一个开源分析工具，用于读取性能监测单元 (PMU) 计数器。
- 可用于获取函数调用堆栈。

它是 Qualcomm Linux 编译版本的组成部分。要运行 perf 工具，可运行以下命令：

    setenforce 0Copy to clipboard

    perfCopy to clipboard

如需了解更多信息，可访问 [https://perf.wiki.kernel.org/index.php/Main_Page](https://perf.wiki.kernel.org/index.php/Main_Page)。

### systemd-analyze

- Systemd-analyze 是一个命令行工具，用于分析和调试 Linux 中的系统启动性能。
- 它对启动时的重要指标进行评测判断，并分析不同层（例如内核、用户空间平台和服务）的瓶颈。

Yocto 系统 recipe 自带 systemd-analyze 工具。

要编译并安装 `systemd-analyze`工具，可按以下步骤操作：
- 在主机上：
    1. 通过在工作区中运行以下命令来编译 `systemd-analyze.ipk`：

            bitbake systemdCopy to clipboard
    2. 这将在以下目录中生成 .ipk 文件：

        /build-qcom-wayland/tmp-glibc/deploy/ipk/armv8-2a/systemd-analyze\_250.5-r0\_armv8-2a.ipk
- 在目标设备上：

    1. 使用 SCP 或类似工具将 .ipk 文件从主机推送到设备中。以下是示例命令：

scp systemd-analyze_250.5-r0_armv8-2a.ipk root@10.92.162.185:/var/cache/Copy to clipboard

Note: 确保在此命令中指定目标 IP 地址。
    2. 运行以下命令以安装 .ipk 文件：

            opkg install /var/cache/systemd-analyze_250.5-r0_armv8-2a.ipkCopy to clipboard

如需了解更多信息，可访问 [https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html](https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html)。

Last Published: Aug 20, 2024

[Previous Topic
功能](https://docs.qualcomm.com/bundle/publicresource/80-70014-10Y/topics/2-performance-features.md) [Next Topic
配置](https://docs.qualcomm.com/bundle/publicresource/80-70014-10Y/topics/14-configure.md)