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