1# oom 2 3- [命令功能](#命令功能) 4- [命令格式](#命令格式) 5- [参数说明](#参数说明) 6- [使用指南](#使用指南) 7- [使用实例](#使用实例) 8- [输出说明](#输出说明) 9 10## 命令功能 11 12查看和设置低内存阈值以及pagecache内存回收阈值。 13 14 15## 命令格式 16 17oom 18 19oom -i [_interval_] 20 21oom -m [_mem byte_] 22 23oom -r [_mem byte_] 24 25oom -h | --help 26 27 28## 参数说明 29 30**表1** 参数说明 31 32| 参数 | 参数说明 | 取值范围 | 33| -------- | -------- | -------- | 34| -i [interval] | 设置oom线程任务检查的时间间隔。 | 100ms ~ 10000ms | 35| -m [mem byte] | 设置低内存阈值。 | 0MB ~ 1MB,0MB表示不做低内存阈值检查。 | 36| -r [mem byte] | 设置pagecache内存回收阈值。 | 低内存阈值 ~ 系统可用最大内存。 | 37| -h \| --help | 使用帮助。 | N/A | 38 39 40## 使用指南 41 42参数缺省时,显示oom功能当前配置信息。 43>  **说明:** 44> 当系统内存不足时,会打印出内存不足的提示信息。 45 46 47## 使用实例 48 49举例: 50 51- oom 52 53- oom -i 100 54 55 56## 输出说明 57 58**示例1:**oom缺省打印配置信息 59 60``` 61OHOS:/$ oom 62[oom] oom loop task status: enabled 63 oom low memory threshold: 0x80000(byte) 64 oom reclaim memory threshold: 0x500000(byte) 65 oom check interval: 100(microsecond) 66``` 67 68系统内存不足时打印提示信息 69 70``` 71T:20 Enter:IT MEM 00M 001 72[oom] OS is in low memory state 73total physical memory: 0x1bcf000(byte), used: 0x1b50000(byte) ,free: 0x7f000(byte), low memory threshold: 0x80000(byte) 74[oom] candidate victim process init pid: 1, actual phy mem byte:82602 75[oom] candidate victim process shell pid: 3, actual phy mem byte:14950e 76[oom] candidate victim process testsuits app pid: 4, actual phy mem byte:1334598 77[oom] candidate victim process UserProcess12 pid: 12, actual phy mem byte:25951558 78[oom] max phy mem used process UserProcess12 pid: 12, actual phy mem 25951558 79################excFrom: User!#################### 80data abort fsr:0x817, far:0x225af000 81Abort caused by a write instruction. Translation fault, page 82excType: data abort 83processName = UserProcess12 84processID = 12 85process aspace = 0х01000000 -> 0х3f000000 86taskName = threado 87taskID = 22 88task user stack = 0х20e17000 -> 0х20e21000 89pc = 0x93969dc in /usr/bin/testsuits app ---> 0x19f9dc 90ulr = 0x93969cc in /usr/bin/testsuits app ---> 0x19f9cc 91usp = 0х20e20c68fp = 0x20e20c8c 92R0 = 0х20e35000 93R1 = 0x225af000 94R2 = 0x0 95R3 = 0х28e35000 96R4 = 0х0 97R5 = 0х9500000 98R6 = 0х14 99R7 = 0х97822c4 100R8 = 0x970cfa8 101R9 = 0x9090909 102R10 = 0xa0a0a0a 103R11 = 0x20e20c8c 104R12 = 0х0 105CPSR = 0х80000010 106***backtrace beain*** 107traceback 0 -- lr = 0x9242e1c fp = 0х20e20cc4 lr in /usr/bin/testsuits apr 0x4be1c 108traceback 1 -- 1r = 0х92430cc fp = 0x20e20cdc lr in /usr/bin/testsuits app --> 0x4c0cc 109traceback 2 -- 1r = 0x9396ab0 fp = 0x20e20cec lr in /usr/bin/testsuits app -> 0х19fab0 110traceback 3 -- lr = 0x9393eb4 fp = 0x20e20cf4 lr in /usr/bin/testsuits ap --> 0x19ceb4 111traceback 4 -- lr = 0x92427d4 fp = 0x20e20d44 lr in /usr/bin/testsuits app --> 0x4b7d4 112traceback 5 -- 1r = 0x20c4df50 fp = 0хb0b0b0b 1r in /1ib/libc.so - -> 0x62f50 113``` 114 115 116**示例2**:设置 oom 线程任务检查的时间间隔 117 118 119``` 120OHOS:/$ oom -i 100 121[oom] set oom check interval (100)ms successful 122``` 123 124 125**表2** 输出说明 126 127| 输出 | 说明 | 128| -------- | -------- | 129| [oom] OS is in low memory state<br/>total physical memory: 0x1bcf000(byte), used: 0x1b50000(byte), free: 0x7f000(byte), low memory threshold: 0x80000(byte) | 操作系统处于低内存状态。<br/>整个系统可用物理内存为0x1bcf000 byte,已经使用了 0x1b50000 byte, 还剩0x7f000 byte,当前设置的低内存阈值为0x80000 byte。 | 130| [oom] candidate victim process init pid: 1, actual phy mem byte: 82602 | 打印当前各个进程的内存使用情况,init进程实际占用物理内存82602byte。 | 131| [oom] candidate victim process UserProcess12 pid: 12, actual phy mem byte: 25951558 | UserProcess12进程实际使用25951558byte内存。 | 132| [oom] max phy mem used process UserProcess12 pid: 12, actual phy mem: 25951558 | 当前使用内存最多的进程是UserProcess12。 | 133| excFrom: User! | 当系统处于低内存的情况下,UserProcess12进程再去申请内存时失败退出。 | 134