应用在使用过程中出现闪退,hilog日志中PROCESS_KILL的Reason为ResourceLeak:ION Leak,memory_leak中生成memleak-kernel-[process_name]-0-sample和memleak-kernel-[process_name]-0-[timestamp]的内存泄漏日志文件。
应用进程触发ION泄漏的管控后,系统会抓取泄漏相关的信息,在memory_leak目录生成两个故障日志文件以供分析。
步骤一:分析采样日志memleak-native-[process_name]-[pid]-sample.txt。
排查ION内存增长情况,是否超过了hardThreshold,或是超过softThreshold长时间未下降。
日志如下:
memoryName:ion
softThreshold:3000(MB) <- 进程软门限
hardThreshold:4500(MB) <- 进程硬门限
topMemory:4801960(KB) <- ION内存峰值
time(s) kernelMemory(KB) realtime
// ...
22 13434 1019272 2026/01/07 22:17:14
23 13654 1015092 2026/01/07 22:20:54
24 13874 1887776 2026/01/07 22:24:34
25 14094 3098152 2026/01/07 22:28:14
26 14314 3562252 2026/01/07 22:31:54
27 14534 4597952 2026/01/07 22:35:34
28 14754 4801960 2026/01/07 22:39:14 步骤二:分析维测日志memleak-native-[process_name]-[pid]-0-[timestamp]。
日志规格如下:
Generated by HiviewDFX @OpenHarmony LOGGER_MEMCHECK_GERNAL_INFO memoryName:ion softThreshold:3000(MB) hardThreshold:4500(MB) appHardThreshold:5460(MB) topMemory:4801960(KB) ***************************** LOGGER_MEMCHECK_MEMINFO <- 整机内存统计信息 MemTotal: 15815588 kB IonTotalUsed: 4843976 kB GpuTotalUsed: 264056 kB AshmemUsed: 214599 kB ************ endl ************ ***************************** LOGGER_MEMCHECK_PROC_INFO <- ashmem/ion/gpu对应泄漏内存节点信息打印(泄漏类型不同,落盘的内存信息不同) MM_DMABUF_INFO realtime: 2026/01/07 22:39:14 Process pid fd size_bytes ino exp_pid exp_task_comm buf_name exp_name buf_type leak_type com.hx.example 4969 285 61440 56492 45101 allocator_host 120x120-re*ou*ce*33*51*15*8.*ng mm_heap_helpers pixelmap pixelmap com.hx.example 4969 291 8192 55773 1423 allocator_host srcImageSize-28x29-pixelMapSize... mm_heap_helpers pixelmap pixelmap com.hx.example 4969 488 28528640 79496 55590 allocator_host 4969 mm_heap_helpers xcomponent xcomponent-t-AP_7682cbcf-8689-4e67-aa34-515d2852e187 com.hx.example 4969 555 4096 57372 1423 allocator_host 4969 mm_heap_helpers NULL external com.hx.example 4969 710 3534848 76954 56996 allocator_host id:lynx-400929851264-monitor-image mm_heap_helpers pixelmap pixelmap com.hx.example 4969 779 1474560 72141 37535 av_codec_servic 720x1280-hevc-394 mm_heap_helpers NULL hw-video-decoder // ... ************ endl ************
步骤三:结合业务代码分析泄漏点。