IO wait 高导致手机的重启案例分析

和你一起终身学 习,这里是程序员Android
本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

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

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

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

1.通过 AEE 抓取的log

部分 Log 如下:

Aee log

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

部分 Log 如下:

Block IO 很高导致重启

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

1. 调整内核,优化 IO

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

修改init.rc 文件

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

go 复制代码
# 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

go 复制代码
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

go 复制代码
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 {

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

点个在看,为大佬点赞!

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
开开心心就好2 天前
安卓手写文字生成工具,多种纸张一直免费
网络·网络协议·tcp/ip·leetcode·智能手机·电脑·模拟退火算法
开开心心就好2 天前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
终端安全笔记3 天前
iOS 27 之后「策略空转」:设备升级不报错,但旧策略不再管它
android·网络·安全·ios·智能手机
ToDesk_Daas3 天前
随时随地手搓app!手机远程 Vibe Coding 实操分享
智能手机·电脑·iphone
终端安全笔记4 天前
描述文件、企业证书、MDM 不是三个名字,是三层
android·ios·智能手机
JoyCong19985 天前
鸿蒙用户等来的是ToDesk:折叠屏适配、星闪笔、互动Tab一次补齐
人工智能·智能手机·电脑·鸿蒙·鸿蒙系统·远程工作·ipad
是店小二呀5 天前
鸿蒙PC开源移植:CodeLite原生IDE与Remote Agent适配
android·智能手机·远程桌面
池央5 天前
通勤听书不想来回切 App?用 Audiobookshelf 搭一个自己的有声书库
智能手机·cpolar
花先锋队长6 天前
华为Mate XT2铰链防尘保养指南:如何让三折叠开合长久丝滑如初?
华为·智能手机·harmonyos