logcat後ctrl Z 退出,壓測導致OOM

2021-07-12 05:47:08 字數 2257 閱讀 8780

在console端輸入logcat, 然後ctrl+z 將logcat程序切到background,

壓測一段時間後/system/bin/logd會消耗大量記憶體,從而導致oom並killing 'd.process.***'導致系統各種異常。

/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資訊。

cmd執行後直接退出

直接在命令最後輸入exit 關於exit命令 exit 退出當前批處理指令碼或 cmd.exe 程式 即,命令解釋程式 並返回到曾啟動cmd.exe 的程式或返回到 程式管理器 命令語法 exit b exitcode 命令引數 b 退出當前批處理指令碼。exitcode 指定數字編號。如果在批處理...

cas 單點退出後跳轉問題

另 關於cas單點退出singlesignoutfilter警告 cas單點退出直接鏈結到伺服器的logout位址,為了使退出後能返回原來的專案,需要做的修改。1.服務端cas servlet.xml配置 增加屬性 p followserviceredirects true 2.退出的鏈結後加上?s...

nohup執行caffe後怎麼退出

1.使用指令 ps ef grep caffe 解釋 ps 將某個程序顯示出來 a 顯示所有程式。e 此引數的效果和指定 a 引數相同。f 顯示uid,ppip,c與stime欄位。grep命令是查詢 中間的 是管道命令 是指ps命令與grep同時執行 zh 8625 8624 99 18 50 0...