Oracle ORA-27102问题的解决办法

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排行

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐