---
title: Miss事件分析
description: "利用SPE（Statistical Profiling Extension）能力对业务进行LLC Miss，TLB Miss，Remote Access，Long Latency Load等Miss类事件分析，可以有针对性地修改自己的程序，降低Miss事件发生的几率，提高程序处理性能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_rc2/cliuserguide/KunpengDevKitCli_0067.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24_rc2/cliuserguide/KunpengDevKitCli_0067.html
indexId: f57c9c0f7c67cd7255dd0695871ed4b6b68ce7a1e1a8d482f0273efebfa93c3085
---
# Miss事件分析

#### 命令功能

利用SPE（Statistical Profiling Extension）能力对业务进行LLC Miss，TLB Miss，Remote Access，Long Latency Load等Miss类事件分析，可以有针对性地修改自己的程序，降低Miss事件发生的几率，提高程序处理性能。

- 采集Miss事件数据时需要服务器支持ARM SPE采集能力，配置SPE请参见  配置SPE环境(https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_rc2/usermanual/kunpengoper_06_0010.html)
。
- Miss事件分析支持openEuler 20.x及以上的操作系统，以及基于openEuler研发的操作系统；不支持虚拟机和容器环境。


#### 命令格式

```
devkit tuner miss [-h] [-c {n | n,m | n-m}] [-d <sec>] [-P n] [-D <sec>] [-l {0, 1, 2, 3}] [-m {1, 2, 3, 4}] [-L n] [-i <sec>] [-r {user, kernel, all}] [-o] [-s] [-p {PID1 | PID1,PID2 | ALL}] [--package] [--long-name] [--dwarf] [workload workload...]
```


#### 参数说明


**表1 参数说明**

| 参数 | 参数选项 | 说明 |
| --- | --- | --- |
| \-h/\-\-help | \- | 获取帮助信息。 |
| \-c/\-\-cpu | \- | 指定采集的CPU核数，如“0”、“0,1,2”、“0\-2”。 |
| \-d/\-\-duration | \- | 设置采集时长，单位为秒，默认为一直采集，可使用Ctrl+\取消任务或Ctrl+C停止采集并进入分析。 |
| \-P/\-\-period | \- | 设置指令数采样间隔，默认8092个，可选择1024\-4,294,967,295个。 |
| \-D/\-\-delay | \- | 设置延迟采样时长，默认为0秒。 |
| \-i/\-\-interval | \- | 设置采集间隔（以秒为单位）。最小值为1秒，最大值不能超过采集时长。默认为持续时间。如果不指定间隔，不生成子报告。每个子报告中收集数据的时间取决于间隔参数。 |
| \-l/\-\-log\-level | 0/1/2/3 | 配置日志等级。默认值为1(info)。 0(debug) 1(info) 2(warning) 3(error) |
| \-m/\-\-metric | 1/2/3/4 | 选择采集数据的等级。默认为1（LLC Miss）。 1（LLC Miss）：内存请求在最后一级Cache中未命中的次数。 2（TLB Miss）：CPU在内存访问或取址过程中，在TLB中没有找到虚拟地址到物理地址映射次数。 3（Remote Access）：跨CPU访问远程DRAM的次数。 4（Long Latency Load）：跨CPU访问远程DRAM，并且访问时延超过设定的最小时延的次数。 |
| \-L/\-\-latency | \- | 设置最小延迟（时钟周期），在采集Long Latency Load数据时可以设置，默认为0。 |
| \-r/\-\-collection\-range | user/kernel/all | 设置采集模式，默认为all。 all：采集用户态和内核态的性能数据。 user：采集用户态的性能数据。 kernel：采集内核态的性能数据。 |
| \-o/\-\-output | \- | 设置报告数据压缩包名称和输出路径，仅输入名称时默认生成在当前所在目录；需和\-\-package配合使用。 |
| \-s/\-\-src\-dir | \- | 指定C/C++源码工作目录，用于查找并关联源码，可将任务导入Web端查看。 |
| \-p/\-\-pid | PID/PID1，PID2/ALL | 指定采集的进程PID，多个进程PID可用“,”分隔。默认采集全部进程（ALL）。若同时使用\-p和\-c参数则优先采集指定PID的进程。 |
| \-\-package | \- | 设置是否生成报告数据压缩包，不指定压缩包名称和路径时默认在当前所在目录生成miss\-时间戳.tar。 |
| \-\-long\-name | \- | 设置是否显示详细函数和模块信息。不使用此参数默认简洁显示模块或功能信息。 |
| \-t/\-\-top | \- | 设置报告中显示数据数量，最小值为1个。 |
| \-\-dwarf | \- | 设置是否生成C/C++的源代码或汇编代码文件。 |


#### 使用示例

- 对系统采集：

```
devkit tuner miss -c 0-127 -d 5 -o /home/miss_report -m 1 --package
```


  命令参数-c 0-127采集0到127的CPU核，采集时长为5秒，参数-o /home/miss_report和--package生成以miss_report命名的报告数据压缩包至指定路径，参数-m 1表示采集LLC Miss事件信息。

  返回信息如下：

```
Miss Summary Report-all                                 Time:2024/05/22 17:56:33
================================================================================
──────────────────────────────────────────────────────────────────────
Function                                               Module                                                                LLC Miss
──────────────────────────────────────────────────────────────────────
UNKNOWN                                                /home/devkit/lib/libpython3.9.so.1.0                        14,196,736 (11.53%)
_PyEval_EvalFrameDefault                               /home/devkit/lib/libpython3.9.so.1.0                        11,321,344 (9.20%)
UNKNOWN                                                /usr/bin/devkit/tuner/lib/libsym.so                          4,702,208 (3.82%)
_perf_ioctl                                            [kernel]                                                     4,587,520 (3.73%)
UNKNOWN                                                /usr/lib64/libc-2.28.so                                      4,046,848 (3.29%)
std::pair<std::_Rb_tree_***const, elf::sym> const&)    /usr/bin/devkit/tuner/lib/libsym.so                          3,694,592 (3.00%)
UNKNOWN                                                /home/devkit/libsqlite3/libsqlite3.so.0.8.6                  3,588,096 (2.91%)
seq_put_hex_ll                                         [kernel]                                                     3,080,192 (2.50%)
_nohz_idle_balance                                     [kernel]                                                     1,941,504 (1.58%)
__audit_syscall_exit                                   [kernel]                                                     1,933,312 (1.57%)
──────────────────────────────────────────────────────────────────────
5509 milliseconds time elapsed
The report /home/miss_report.tar is generated successfully.
To view summary report. you can run: devkit report -i /home/miss_report.tar
To view detail report. you can import the report to the WebUI or IDE to view details.
```


- 对应用采集：

```
devkit tuner miss -d 5 --package /opt/testdemo/cache_miss
```


  对应用/opt/testdemo/cache_miss采集，参数-d 5表示采集5秒，参数--package生成报告数据压缩包至工具目录中，默认以miss+时间戳方式命名。

  返回信息如下：

```
Miss Summary Report-all                                 Time:2024/06/11 11:16:15
================================================================================
──────────────────────────────────────────────────────────────────────
Function                                               Module                                                                LLC Miss
──────────────────────────────────────────────────────────────────────
main                                                   /opt/testdemo/cache_miss                                    74,964,992 (60.74%)
copy_page                                              [kernel]                                                    33,554,432 (27.19%)
change_protection_range                                [kernel]                                                     6,815,744 (5.52%)
UNKNOWN                                                [kernel]                                                     3,784,704 (3.07%)
handle_percpu_devid_irq                                [kernel]                                                     2,490,368 (2.02%)
propagate_protected_usage                              [kernel]                                                       917,504 (0.74%)
page_counter_charge                                    [kernel]                                                       720,896 (0.58%)
queued_spin_lock_slowpath                              [kernel]                                                        32,768 (0.03%)
account_system_index_time                              [kernel]                                                        24,576 (0.02%)
trigger_load_balance                                   [kernel]                                                        24,576 (0.02%)
──────────────────────────────────────────────────────────────────────
6222 milliseconds time elapsed
If *** is displayed in Function or Module, use --long-name to show full name.
The report /usr/bin/devkit/miss-20240611-111608.tar is generated successfully.
To view summary report. you can run: devkit report -i /usr/bin/devkit/miss-20240611-111608.tar
To view detail report. you can import the report to the WebUI or IDE to view details.
```


- 对PID采集：

```
devkit tuner miss -d 5 --package -p 414192
```


  参数-p 414192表示对进程号为414192的进程采集。

  返回信息如下：

```
Miss Summary Report-all                                 Time:2024/06/11 11:18:28
================================================================================
─────────────────────────────────────────────────────────────────────
Function                                               Module                                                                LLC Miss
─────────────────────────────────────────────────────────────────────
UNKNOWN                                                /usr/lib64/libpthread-2.28.so                               32,505,856 (99.42%)
queued_spin_lock_slowpath                              [kernel]                                                        57,344 (0.18%)
available_idle_cpu                                     [kernel]                                                        16,384 (0.05%)
cpu_load_update_active                                 [kernel]                                                        16,384 (0.05%)
futex_wait                                             [kernel]                                                        16,384 (0.05%)
get_futex_value_locked                                 [kernel]                                                        16,384 (0.05%)
trigger_load_balance                                   [kernel]                                                        16,384 (0.05%)
__list_del_entry_valid                                 [kernel]                                                         8,192 (0.03%)
fun2                                                   /opt/testdemo/pthread_mutex_long                                 8,192 (0.03%)
futex_wake                                             [kernel]                                                         8,192 (0.03%)
─────────────────────────────────────────────────────────────────────
5976 milliseconds time elapsed
If *** is displayed in Function or Module, use --long-name to show full name.
The report /usr/bin/devkit/miss-20240611-111822.tar is generated successfully.
To view summary report. you can run: devkit report -i /usr/bin/devkit/miss-20240611-111822.tar
To view detail report. you can import the report to the WebUI or IDE to view details.
```


- 查看已生成报告：

```
devkit report -i /usr/bin/devkit/miss-20240611-111822.tar
```


  返回信息如下：

```
──────────────────────────────────────────────────────────────────────
Function                                               Module                                                                LLC Miss
──────────────────────────────────────────────────────────────────────
UNKNOWN                                                /usr/lib64/libpthread-2.28.so                               32,505,856 (99.42%)
queued_spin_lock_slowpath                              [kernel]                                                        57,344 (0.18%)
available_idle_cpu                                     [kernel]                                                        16,384 (0.05%)
cpu_load_update_active                                 [kernel]                                                        16,384 (0.05%)
futex_wait                                             [kernel]                                                        16,384 (0.05%)
get_futex_value_locked                                 [kernel]                                                        16,384 (0.05%)
trigger_load_balance                                   [kernel]                                                        16,384 (0.05%)
__list_del_entry_valid                                 [kernel]                                                         8,192 (0.03%)
fun2                                                   /opt/testdemo/pthread_mutex_long                                 8,192 (0.03%)
futex_wake                                             [kernel]                                                         8,192 (0.03%)
──────────────────────────────────────────────────────────────────────
5976 milliseconds time elapsed
```
