---
title: 内存使用
description: "进行内存分配、释放性能数据采集，检查应用中的内存分配未释放的情况。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24/cliuserguide/KunpengDevKitCli_0076.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24/cliuserguide/KunpengDevKitCli_0076.html
indexId: 677254fbdd7ac8af944b9a8739fb29c2c4dde2185e8e11ed014eba9f6d3196f381
---
# 内存使用

#### 命令功能

进行内存分配、释放性能数据采集，检查应用中的内存分配未释放的情况。


#### 命令格式

```
devkit doctor memalloc [-h] [-l {0,1,2,3}] [--package] [-o <file>] [-d <sec>] [-i <sec>] [-t n] [-z <byte>] [-Z <byte>] [-p PID]
[workload ...]
```

- [workload workload...]可采集指定应用，命令中[workload workload...]替换为应用路径加应用参数。
- 不支持在SUSE Linux操作系统使用。
- 该功能基于eBPF能力实现，采集时需使用root用户。


#### 参数说明


**表1 参数说明**

| 参数 | 参数选项 | 说明 |
| --- | --- | --- |
| \-h/\-\-help | \- | 获取帮助信息。 |
| \-d/\-\-duration | \- | 设置采集时长，单位为秒，默认为采集应用运行结束，可使用Ctrl+C停止采集并进入分析。 |
| \-i/\-\-interval | \- | 设置采集间隔（以秒为单位）。默认为1秒，取值范围1至60秒，且不可超过采集时长。 |
| \-l/\-\-log\-level | 0/1/2/3 | 设置日志级别，默认为2。 0：日志级别为DEBUG。 1：日志级别为INFO。 2：日志级别为WARNING。 3：日志级别为ERROR。 |
| \-o/\-\-output | \- | 设置报告数据生成文件名，默认为当前所在目录。 |
| \-\-package | \- | 设置是否将数据导入数据库，并在指定输出路径中生成压缩包。 |
| \-t/\-\-top | \- | 设置采集内存使用最大的top N个堆栈信息，默认为5，取值范围为5至15个（报告输出内容按堆栈大小排序）。 |
| \-z/\-\-min\-size | \- | 设置采集到的每次内存使用的最小值，单位为字节，需大于等于1。 |
| \-Z/\-\-max\-size | \- | 设置采集到的每次内存使用的最大值，单位为字节，需大于等于2。 |
| \-p/\-\-pid | \- | 指定采集的进程PID，默认为\-1，表示采集内核态内存使用情况。 |


#### 使用示例

```
devkit doctor memalloc -d 1 -i 1 -t 5
```

若需针对应用采集，可在命令后方添加应用的可执行文件路径。


返回信息如下：

```
Attaching to kernel allocators, Ctrl+C to quit.
Memory Allocate Summary Report-1                        Time:2024/07/17 15:40:43
================================================================================
Top 5 stacks with outstanding allocations:
Top 1 stack
─────────────────────────────────────────────────────────────────
stack_name                __alloc_pages_nodemask+0x208 [kernel]
stack_id                  3305
alloc_size                3407872B
alloc_count               52
alloc_distribution        64KB-128KB 52
stack_info:
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff000008325ad0        alloc_pages_vma+0x90 [kernel]
0xffff0000082e9978        wp_page_copy+0xa0 [kernel]
0xffff0000082ed468        do_wp_page+0xd8 [kernel]
0xffff0000082f0c80        __handle_mm_fault+0x538 [kernel]
0xffff0000082f1048        handle_mm_fault+0xd8 [kernel]
0xffff000008ab9fb0        do_page_fault+0x210 [kernel]
0xffff0000080812d0        do_mem_abort+0x68 [kernel]
0xffff000008083b64        el0_da+0x24 [kernel]
Top 2 stack
─────────────────────────────────────────────────────────────────
stack_name                kmem_cache_alloc+0x188 [kernel]
stack_id                  15249
alloc_size                292352B
alloc_count               1142
alloc_distribution        256B-512B 1142
stack_info:
0xffff000008333188        kmem_cache_alloc+0x188 [kernel]
0xffff000008333188        kmem_cache_alloc+0x188 [kernel]
0xffff00000836fd94        __alloc_file+0x34 [kernel]
0xffff0000083701a0        alloc_empty_file+0x68 [kernel]
0xffff0000083819cc        path_openat+0x4c [kernel]
0xffff0000083830e0        do_filp_open+0x88 [kernel]
0xffff00000836aa58        do_sys_open+0x1a8 [kernel]
0xffff00000836ab4c        __arm64_sys_openat+0x2c [kernel]
0xffff0000080999f0        el0_svc_common+0x78 [kernel]
0xffff000008099b28        el0_svc_handler+0x38 [kernel]
0xffff000008084188        el0_svc+0x8 [kernel]
Top 3 stack
─────────────────────────────────────────────────────────────────
stack_name                __alloc_pages_nodemask+0x208 [kernel]
stack_id                  10583
alloc_size                262144B
alloc_count               4
alloc_distribution        64KB-128KB 4
stack_info:
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff000008323eb8        alloc_pages_current+0x88 [kernel]
0xffff00000833127c        allocate_slab+0x43c [kernel]
0xffff0000083313fc        new_slab+0x64 [kernel]
0xffff000008332e04        ___slab_alloc+0x40c [kernel]
0xffff000008332fe4        __slab_alloc+0x5c [kernel]
0xffff0000083331dc        kmem_cache_alloc+0x1dc [kernel]
0xffff00000836fd94        __alloc_file+0x34 [kernel]
0xffff0000083701a0        alloc_empty_file+0x68 [kernel]
0xffff0000083819cc        path_openat+0x4c [kernel]
0xffff0000083830e0        do_filp_open+0x88 [kernel]
0xffff00000836aa58        do_sys_open+0x1a8 [kernel]
0xffff00000836ab4c        __arm64_sys_openat+0x2c [kernel]
0xffff0000080999f0        el0_svc_common+0x78 [kernel]
0xffff000008099b28        el0_svc_handler+0x38 [kernel]
0xffff000008084188        el0_svc+0x8 [kernel]
Top 4 stack
─────────────────────────────────────────────────────────────────
stack_name                __alloc_pages_nodemask+0x208 [kernel]
stack_id                  10847
alloc_size                196608B
alloc_count               3
alloc_distribution        64KB-128KB 3
stack_info:
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff000008323eb8        alloc_pages_current+0x88 [kernel]
0xffff0000082e960c        __do_fault+0xf4 [kernel]
0xffff0000082eedb8        do_cow_fault+0x118 [kernel]
0xffff0000082f0b18        __handle_mm_fault+0x3d0 [kernel]
0xffff0000082f1048        handle_mm_fault+0xd8 [kernel]
0xffff000008ab9fb0        do_page_fault+0x210 [kernel]
0xffff000008aba340        do_translation_fault+0xa8 [kernel]
0xffff0000080812d0        do_mem_abort+0x68 [kernel]
0xffff000008083210        el1_da+0x20 [kernel]
0xffff000008a94b80        __arch_clear_user+0x20 [kernel]
0xffff0000083fe884        load_elf_binary+0x874 [kernel]
0xffff000008377bec        search_binary_handler+0xcc [kernel]
0xffff0000083787b8        __do_execve_file.isra.13+0x608 [kernel]
0xffff000008378a10        do_execve+0x48 [kernel]
0xffff000008378c80        __arm64_sys_execve+0x30 [kernel]
0xffff0000080999f0        el0_svc_common+0x78 [kernel]
0xffff000008099b28        el0_svc_handler+0x38 [kernel]
0xffff000008084188        el0_svc+0x8 [kernel]
Top 5 stack
─────────────────────────────────────────────────────────────────
stack_name                __alloc_pages_nodemask+0x208 [kernel]
stack_id                  8792
alloc_size                196608B
alloc_count               3
alloc_distribution        64KB-128KB 3
stack_info:
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff0000082aed48        __alloc_pages_nodemask+0x208 [kernel]
0xffff000008323eb8        alloc_pages_current+0x88 [kernel]
0xffff0000082a9560        __get_free_pages+0x28 [kernel]
0xffff0000082fb890        tlb_remove_table+0xa8 [kernel]
0xffff0000082ea818        free_pgd_range+0x168 [kernel]
0xffff0000082eab3c        free_pgtables+0x12c [kernel]
0xffff0000082f8278        exit_mmap+0xe8 [kernel]
0xffff0000080f60bc        mmput+0x74 [kernel]
0xffff0000080ff530        do_exit+0x300 [kernel]
0xffff0000080ff8cc        do_group_exit+0x3c [kernel]
0xffff0000080ff98c        __arm64_sys_exit_group+0x24 [kernel]
0xffff0000080999f0        el0_svc_common+0x78 [kernel]
0xffff000008099b28        el0_svc_handler+0x38 [kernel]
0xffff000008084188        el0_svc+0x8 [kernel]
```

通过--package参数打包生成TAR包，可将TAR包导入Web界面查看图形化信息。
