logcat后ctrl+Z 退出,压测导致OOM

原创 2016年05月31日 15:08:52

在console端输入logcat, 然后ctrl+z 将logcat进程切到background,

压测一段时间后/system/bin/logd会消耗大量内存,从而导致OOM并Killing 'd.process.xxx'导致系统各种异常。
/system/bin/logd 是android log系统的守护进程, 如果将logcat切到后台,应该是会把log信息保存到内存。

log如下:
[05:20:18:51:06]shell@board:/ $ su
[05:20:18:51:16]shell@board:/ # /storage/sdcard0/mem_usage.sh &  //用于压测输出系统运行信息
[05:20:18:51:18] 2273 14040K 2296K 1501K 1428K /system/bin/logd   //此时的logd只占了1428K的物理内存

[05:20:18:52:11]shell@board:/ # logcat -c
[05:20:18:52:15]shell@board:/ # logcat
[05:20:18:52:18]
[05:20:18:52:20]^Z[2] + Stopped logcat //终止logcat
[05:20:18:53:10]shell@board:/ # logcat  //此处又敲了一次logcat
[05:20:18:53:16]^Z[3] + Stopped logcat
[05:20:18:53:24]shell@board:/ # cat /proc/meminfo
[05:20:18:53:24]MemTotal: 1026800 kB
[05:20:18:53:24]MemFree: 266564 kB 可以看到此时内存还很多
...
看如下procrank信息
[05:20:18:53:27] PID Vss Rss Pss Uss cmdline
[05:20:18:53:27] 3657 1287884K 95712K 51968K 48692K com.haiersoft.launcherproject2995hk
[05:20:18:53:27] 2714 1321520K 71304K 34644K 29324K system_server

[05:20:18:53:27] 2273    16088K    2208K    1415K    1344K  /system/bin/logd
...
[05:20:18:53:27] 4326 3848K 748K 292K 268K logcat
[05:20:18:53:27] 4313 3848K 664K 218K 196K logcat //可以看到有两个logcat进程background 运行

1308475行开始如下:
[05:21:17:14:47] PID Vss Rss Pss Uss cmdline
[05:21:17:14:47] 2273 330456K 316804K 251603K 243248K /system/bin/logd //此时的logd占了243248K的物理内存
...
[05:21:17:14:47][85104.250810] lowmemorykiller: Killing 'd.process.media' (3629), adj 1000,
[05:21:17:14:47][85104.250810] to free 39640kB on behalf of 'kswapd0' (367) because
[05:21:17:14:47][85104.250810] cache 177876kB is below limit 187076kB for oom_score_adj 1000

logd是android log系统的守护进程, 通过下面方式启动:

service logd /system/bin/logd
    class core
    socket logd stream 0666 logd logd
    socket logdr seqpacket 0666 logd logd
    socket logdw dgram 0222 logd logd
    seclabel u:r:logd:s0

logd相当于log系统的一个server,  logcat命令相当于client,  logd会把各种log信息写到socket logdw, 而logcat client端会通过logd socket项logd 发送一些control instruct,

同时连接logdr socket读取log信息。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

前后台切换命令(ctrl+z jobs bg fg &)

当我在终端里面运行某个命令的时候,结果不是很快就能出来的那种,或者是一大堆字在屏幕上狂翻 这个时候,有时ctrl+c也不起作用,那我会用ctrl+z退出来,这个很有效,但是说实话我不知道为什么 这个...

Ctrl+Z 后恢复进程到前台

转载自:http://blog.chinaunix.net/uid-10219166-id-2968756.html ----------- 以下是原文     假设你发现前台运行的一个程序需...

Linux Ctrl+z jobs bg fg &使用及区别

一、& 最经常被用到这个用在一个命令的最后,可以把这个命令放到后台执行二、ctrl + z可以将一个正在前台执行的命令放到后台,并且暂停三、jobs查看当前有多少在后台运行的命令四、fg将后台中的命令...

Linux Ctrl+z jobs bg fg &使用及区别

一、& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行 二、ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停 三、jobs 查看当前有多少在后台运行的命令 ...

ctrl+z

源代码为: #include #include using namespace std; int main() { string world; while (cin >> world...
  • csiyou
  • csiyou
  • 2012-03-06 17:59
  • 2194

fg、bg、jobs、&、ctrl + z等linux命令简介

fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的 一。& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行...

C++ 输入ctrl+z 不能再使用cin的问题

问题介绍: 程序步骤是开始往容器里面写数据,以Ctrl+Z来终止输入流,然后需要输入一个数据,来判断容器中是否有这个数据。 源代码如下: 1 #include 2 #include 3 #i...

fg bg ctrl + z jobs & 等命令

转自: http://blog.chinaunix.net/space.php?uid=20697318&do=blog&id=1891382 fg、bg、jobs、&、ctrl + z都是...

TASK_STOPPED Ctrl-Z

1. 举例 从终端shell命令行启动一个图形界面的程序(用xlogo来举例) 然后在再切换到该终端,可以按Ctrl-Z(信号为:SIG,信号编号:19,名称为:CONT)暂停该图形程...

C++ 输入ctrl+z 不能再使用cin的问题

转载自http://www.cnblogs.com/hubavyn/p/3996413.html问题介绍: 程序步骤是开始往容器里面写数据,以Ctrl+Z来终止输入流,然后需要输入一个数据,来判断容器...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)