转 - Android下一次OOM调试过程

简介: 线程数超限,即proc/pid/status中记录的线程数(threads项)突破/proc/sys/kernel/threads-max中规定的最大线程数。

分享原因


  • 调试过程记录非常详细,是很好排查思路学习和锻炼的学习资料
  • Android基于Linux内核,Linux对线程、进程、描述符等限制参数的功能
  • 技术文章


可以导致OOM的原因有以下几种:


  • 文件描述符(fd)数目超限,即proc/pid/fd下文件数目突破/proc/pid/limits中的限制。可能的发生场景有:
  • 短时间内大量请求导致socket的fd数激增,大量(重复)打开文件等
  • 线程数超限,即proc/pid/status中记录的线程数(threads项)突破/proc/sys/kernel/threads-max中规定的最大线程数。可能的发生场景有:
  • app内多线程使用不合理,如多个不共享线程池的OKhttpclient等等
  • 传统的java堆内存超限,即申请堆内存大小超过了 Runtime.getRuntime().maxMemory()
  • (低概率)32为系统进程逻辑空间被占满导致OOM.


原文地址


https://blog.csdn.net/zhizhuodewo6/article/details/81486384

目录
相关文章
|
1月前
|
存储 Java Linux
Android Mstar增加IR 自定义遥控头码完整调试过程
Android Mstar增加IR 自定义遥控头码完整调试过程
35 1
|
29天前
|
存储 定位技术 开发工具
Android 开发前的设计,Android之内存泄漏调试学习与总结
Android 开发前的设计,Android之内存泄漏调试学习与总结
|
30天前
|
算法 架构师 程序员
android开发板调试,Android程序员的春天
android开发板调试,Android程序员的春天
|
1月前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
20 0
|
1月前
|
Android开发
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
25 0
|
1月前
|
Android开发 内存技术
Android 通过tinyalsa调试解决录制和播放音频问题
Android 通过tinyalsa调试解决录制和播放音频问题
64 1
|
1月前
|
编解码 监控 API
Android HAL深入探索(6): HIDL 添加SELinux 完整调试过程
Android HAL深入探索(6): HIDL 添加SELinux 完整调试过程
190 0
|
1月前
|
安全 编译器 API
Android HAL深入探索(5): 调试HAL报错与解决方案
Android HAL深入探索(5): 调试HAL报错与解决方案
147 1
|
1月前
|
网络协议 Shell Android开发
Android 深入学习ADB调试原理(1)
Android 深入学习ADB调试原理(1)
49 1
|
1月前
|
安全 Java Shell
Android11以上 Audio音频调试方法
Android11以上 Audio音频调试方法
135 0