欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle ORA-27102问题的解决办法

程序员文章站 2024-02-03 10:52:52
oracle ora-27102:out of memory 错误解决办法(简单粗暴,100%能解决内存占用问题) -前置: 当遇到这个问题,笔者也是一脸的茫然,然后就是查资料,在笔者查阅了很多相关...

oracle ora-27102:out of memory 错误解决办法(简单粗暴,100%能解决内存占用问题)

-前置:

当遇到这个问题,笔者也是一脸的茫然,然后就是查资料,在笔者查阅了很多相关资料后发现什么优化、配置sysctl.conf内存最大最小值后发现也都没啥太大的作用(笔者的/etc/sysctl.conf已经配置与内存同样大小),最终还是通过比较简单粗暴的方式将问题解决,直接结束现有进程。

-原因:

由于linux下运行的进程占用物理内存过多,虚拟内存过大,虚拟内存不释放导致内存不足,这是问题的根本!

-那么,怎么解决?

linux系统:

解决:

1.查看linux进程内存占用情况:

(1)使用top命令:$ top -u oracle 或 top -10

2.筛选结果(如结果显示pid为144524的java进程占用了1.9g的物理内存):

pid user pr ni virt res shr s %cpu %mem time+ command
3440 root 20 0 132m 27m 1056 s 7.3 0.1 1511:06 phdaemon
102435 root 20 0 15428 1724 948 r 0.7 0.0 0:00.04 top
144524 root 20 0 15.2g 1.9g 7156 s 0.7 6.1 9:17.07 java
2277 root 20 0 15.2g 1.6g 13m s 0.3 5.2 2:02.41 java
9312 root 20 0 102m 2168 992 s 0.3 0.0 2:52.20 oraysl

3.根据pid结束进程命令:

(1)如果不想结束整个java进程,还可以使用ps命令:$ ps -ef|grep java

(2)找到可以结束的进程pid,在使用kill命令:$ kill -9 144524

(3)直到再次登录。

内容解释:

pid:进程的id

user:进程所有者

pr:进程的优先级别,越小越优先被执行

ninice:值

virt:进程占用的虚拟内存

res:进程占用的物理内存

shr:进程使用的共享内存

s:进程的状态。s表示休眠,r表示正在运行,z表示僵死状态,n表示该进程优先值为负数

%cpu:进程占用cpu的使用率

%mem:进程使用的物理内存和总内存的百分比

time+:该进程启动后占用的总的cpu时间,即占用cpu使用时间的累加值。

command:进程启动命令名称

常用命令:

p:按%cpu使用率排行

t:按mite+排行

m:按%mem排行