欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > IO wait 高导致手机的重启案例分析

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

2025/4/19 8:53:13 来源:https://blog.csdn.net/wjky2014/article/details/147264914  浏览:    关键词: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

# Tweak background writeoutwrite /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 initexport LD_PRELOAD libdirect-coredump.sowrite /proc/self/coredump_filter 39
+       setprop persist.dbg.anrflow 1on property:vold.decrypt=trigger_restart_frameworkrestart 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 {

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

点个在看,为大佬点赞!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词