首页 > 其他 > 详细

SWT 重启案例分析(六)

时间:2019-08-09 15:08:09      阅读:99      评论:0      收藏:0      [点我收藏+]

技术分享图片

极力推荐文章:欢迎收藏
Android 干货分享

技术分享图片

阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、拷贝大文件,IO wait 高,导致SWT重启
二、高IO wait 导致重启的 解决方案

一、拷贝大文件,IO wait 高,导致SWT重启

1.通过 AEE 抓取的log

部分 Log 如下:
技术分享图片

2.高 IO 导致CPU 使用率过高

部分 Log 如下:
技术分享图片

二、高IO wait 导致重启的 解决方案

##### 1. 调整内核,优化 IO

通过调整内核参数,将写活动的高峰分布成频繁的多次写,每次写入的数据比较少。这种方式执行的效率比较低,但减少了内核组合写操作的机会,降低重启概率发生。

修改init.rc 文件
文件路径如下:
system/core/rootdir/init.rc

     # Tweak background writeout
     write /proc/sys/vm/dirty_expire_centisecs 200
-    write /proc/sys/vm/dirty_background_ratio  3
-    write /proc/sys/vm/dirty_ratio 10
+    write /proc/sys/vm/dirty_background_ratio  1
+    write /proc/sys/vm/dirty_ratio 2
        
     # Permissions for System Server and daemons.
     chown radio system /sys/android_power/state
2. 关闭ANR dump 信息

修改init.aee.customer.rc文件
修改代码如下:
/vendor/mediatek/proprietary/external/aee/config_external/init.aee.customer.rc

 on init
     export LD_PRELOAD libdirect-coredump.so
     write /proc/self/coredump_filter 39
+       setprop persist.dbg.anrflow 1
 
 on property:vold.decrypt=trigger_restart_framework
     restart debuggerd
3. 关闭 wtf dump文件log信息

当拷贝大型文件到手机中(5G以上),此时手机IO wait 会很高,此时Dump ANR wtf等信息,会严重影响到IO wait,如果系统超过1分钟无响应,看门狗会自动重启手机,故在 高IO wait的情况下,建议可以关闭 dump信息,缓解一下CPU负载过高的问题。

注释掉 AMS 中的Log打印
ActivityManagerService代码路径如下:
/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService

?public?final?class?ActivityManagerService?extends?ActivityManagerNative

?????????????????//?should?be?protected?to?avoid?security?holes,?so?yell?loudly

?????????????????//?to?ensure?we?examine?these?cases.

?????????????????if?(callerApp?!=?null)?{

-????????????????????Log.wtf(TAG,?"Sending?non-protected?broadcast?"?+?action

-????????????????????????????+?"?from?system?"?+?callerApp.toShortString()?+?"?pkg?"?+?callerPackage,

-????????????????????????????new?Throwable());

+???????????????????????????????????????//?add?for?copy?5G?file?reboot?

+???????????????????????????????????????android.util.Log.e("wangjie","Sending?non-protected?broadcast?cause?reboot?pkg?"+callerPackage);????????????????

+????????????????????//Log.wtf(TAG,?"Sending?non-protected?broadcast?"?+?action

+?????????????????????//???????+?"?from?system?"?+?callerApp.toShortString()?+?"?pkg?"?+?callerPackage,

+??????????????????????//??????new?Throwable());

+???????????????????????????????????????//?add?for?copy?5G?file?reboot??????????

?????????????????}?else?{

-????????????????????Log.wtf(TAG,?"Sending?non-protected?broadcast?"?+?action

-????????????????????????????+?"?from?system?uid?"?+?UserHandle.formatUid(callingUid)

-????????????????????????????+?"?pkg?"?+?callerPackage,

-????????????????????????????new?Throwable());

-????????????????}

+???????????????????????????????????????//?add?for?copy?5G?file?reboot?

+???????????????????????????????????????android.util.Log.e("wangjie","Sending?non-protected?broadcast?cause?reboot?pkg?"+callerPackage);????????

+????????????????????//??Log.wtf(TAG,?"Sending?non-protected?broadcast?"?+?action

+????????????????????//????????+?"?from?system?uid?"?+?UserHandle.formatUid(callingUid)

+???????????????????//?????????+?"?pkg?"?+?callerPackage,

+???????????????????//?????????new?Throwable());

+??????????????????????????????????//?add?for?copy?5G?file?reboot?

+????????????????}

+???????????????????????????????

+???????????????????????????????//?add?for?copy?5G?file?reboot?

?????????????}

?????????}?else?{

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

技术分享图片

SWT 重启案例分析(六)

原文:https://www.cnblogs.com/wangjie1990/p/11326946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!