Android 低内存导致monkey killed分析指南

现象描述:

monkey --pkg-blacklist-file storage/sdcard0/blacklist.txt  --ignore-security-exc

eptions --monitor-native-crashes -s 800 -v -v -v  --throttle 1427 180000 >sdcard

/Monkey.log

shes -s 800 -v -v -v  --throttle 1427 180000 >sdcard/Monkey.log               <

Killed

首先在kernel log中搜索关键字monkey,并根据monkey退出的log行向上查看如下:

<4>[ 2646.721739] (0)[474:AudioOut_2]AWD 8192AWD 8192======low memory killer=====

<4>[ 2646.781825] (1)[17854:sh]Free memory other_free: -1147, other_file:3990 pages

<4>[ 2646.781878] (1)[17854:sh]Candidate 1 (init), adj -941, rss 69, rswap 109, to kill

<4>[ 2646.781933] (1)[17854:sh]Candidate 87 (ueventd), adj -941, rss 56, rswap 64, to kill

。。。。。。

<4>[ 2646.784770] (1)[17854:sh]Candidate 17859 (roviders.global), adj -941, rss 1452, rswap 2652, to kill

<4>[ 2646.784825] (1)[17854:sh]Killing ‘commands.monkey‘ (7641), adj 0,

<4>[ 2646.784839] (1)[17854:sh]   to free 8504kB on behalf of ‘sh‘ (17854) because

<4>[ 2646.784852] (1)[17854:sh]   cache 15960kB is below limit 23552kB for oom_score_adj 0

<4>[ 2646.784867] (1)[17854:sh]   Free memory is -4588kB above reserved [gfp(0xd0)]

<4>[ 2646.784903] (1)[17854:sh]low memory info:

<4>[ 2646.784983] (1)[17854:sh]Normal free:3964kB min:2784kB low:7980kB high:8676kB active_anon:18352kB inactive_anon:18364kB active_file:6936kB inactive_file:6888kB
unevictable:27196kB isolated(anon):0kB isolated(file):68kB present:485448kB mlocked:25284kB dirty:0kB writeback:40kB mapped:20816kB shmem:11948kB slab_reclaimable:18212kB slab_unreclaimable:52360kB kernel_stack:4120kB pagetables:5292kB unstable:0kB bounce:0kB
writeback_tmp:0kB pages_scanned:252 all_unreclaimable? no

<4>[ 2646.785058] (1)[17854:sh]Normal: 991*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 3964kB

<4>[ 2646.785334] (1)[17854:sh]LowMemoryOn

<7>[ 2646.785381]-(1)[17854:sh][17854:sh] sig 9 to [7641:commands.monkey]

<7>[ 2646.786094] (0)[7641:commands.monkey][7641:commands.monkey] exit

分析结果:从上面log已经可以很清楚的看到当前monkey被killed原因是由于低内存导致。monkey退出

前low memory killer已经开始频繁杀内存了。且此时可以在log中搜索commands.monkey的adj值为0(值越小表示优先级最高,adj的值可以为负数,如像init进程的oom_adj为-16)

时间: 2024-10-29 03:56:10

Android 低内存导致monkey killed分析指南的相关文章

线上mysql内存持续增长直至内存溢出被killed分析

来新公司前,领导就说了,线上生产环境Mysql库经常会发生日间内存爆掉被killed的情况,结果来到这第一天,第一件事就是要根据线上服务器配置优化配置,同时必须找出现在mysql内存持续增加爆掉的原因,虽然我主业已经不是数据库更不是dba了. 这个业务上基本山算是OLTP,盘中都是很简单的SQL,所以性能上虽然有些SQL有些慢,但看过slow-log和performance_schema,可以忽略不计. 初步了解,应用是java开发的,但是应用端没有出现过OOM的情况,也不见卡死或者越来越慢的情

Android应用开发性能优化完全分析

 应用UI性能问题分析 UI可谓是一个应用的脸,所以每一款应用在开发阶段我们的交互.视觉.动画工程师都拼命的想让它变得自然大方美丽,可是现实总是不尽人意,动画和交互总会觉得开发做出来的应用用上去感觉不自然,没有达到他们心目中的自然流畅细节:这种情况之下就更别提发布给终端用户使用了,用户要是能够感觉出来,少则影响心情,多则卸载应用:所以一个应用的UI显示性能问题就不得不被开发人员重视. 2-1 应用UI卡顿原理 人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然

Android 应用开发性能优化完全分析

1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也还是有很多的,譬如Google官方都已经推出了优化专题,我这里只是总结下自的感悟而已,若有得罪欢迎拍砖,我

【转】Android应用开发性能优化完全分析

http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网

转——Android应用开发性能优化完全分析

[工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.] 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也还是有很多的,

转:Android应用开发性能优化完全分析

转自:http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质

android:MAT内存分析工具的使用

前言 之前看过这篇博客,<IBM使用 Eclipse Memory Analyzer 进行堆转储文件分析>.所以,想使用MAT对android app的内存进行分析.又恰好看到这篇博客<Android内存泄漏研究>,于是,我也总结一些MAT的使用. 1.在Eclipse上安装MAT,和安装其他插件一样,MAT的当前地址:http://download.eclipse.org/mat/1.4/update-site/ 安装 完成之后重启Eclipse即可. 2.在设备页面,选择包名对

【转】.. Android应用内存泄露分析、改善经验总结

原文网址:http://wetest.qq.com/lab/view/107.html?from=ads_test2_qqtips&sessionUserType=BFT.PARAMS.194206.TASKID&ADUIN=554147273&ADSESSION=1467939955&ADTAG=CLIENT.QQ.5479_.0&ADPUBNO=26582 前言   通过这几天对好几个应用的内存泄露检测和改善,效果明显: 完全退出应用时,手动触发GC,从原来占有

Android 性能优化之使用MAT分析内存泄露问题

我们平常在开发Android应用程序的时候,稍有不慎就有可能产生OOM,虽然JAVA有垃圾回收机,但也不能杜绝内存泄露,内存溢出等问题,随着科技的进步,移动设备的内存也越来越大了,但由于Android设备的参差不齐,可能运行在这台设备好好的,运行在那台设备就报OOM,这些适配问题也是比较蛋疼的,比如我们平常运行着一个应用程序,运行的好好的,突然到某个Activity就给你爆出一个OOM的错误,你可能会以为是这个Activity导致的内存泄露,你会想到也有可能是内存有泄露吗?内存泄露就像一个定时炸