背景
最近比较多的碰到OOM异常,总结下OOM的异常快速定位和解决的办法。
OOM的常见原因
- 内存分配确实过小
- 频繁创建对象,没有及时释放
- 频繁申请系统资源,导致系统资源耗尽(例如:不断创建线程,不断发起网络连接)
定位与解决方法
需要先找到出问题的进程,使用top命令定位:
top
输入top
命令后,可以按P(shift+p)根据cpu占用排序、按M根据内存占用排序、按T根据运行时间排序。(可以先按c显示具体的command)
这里先按M根据内存排序查找异常的进程:这里假设出现异常的进程pid为2879