• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

oracle真实案例之oem大量占用cpu与内存问题的解决方法

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

一、介绍由于dba离职,所以公司所有的oracle数据库服务器我先兼职管理,今天登陆某省的数据库,发现ssh登陆30秒左右才进入,之后查看了一下负载与内存,具体情况

一、介绍

由于dba离职,所以公司所有的oracle数据库服务器我先兼职管理,今天登陆某省的数据库,发现ssh登陆30秒左右才进入,之后查看了一下负载与内存,具体情况如下图:

负载:

没有见过这样高的负载,以前见过最多的就是负责1000多,香港空间,java的问题

内存:

连交换内存都使用完了,物理内存就剩下71m了,太危险了

top:

发现了6个僵尸进程与大量的perl进行

现在查看一下僵尸进程

发现都是[sh] 进程,以前遇到过这样的问题,都是由于cron里启动脚本的时候,没有加入错误输入到空设备里导致,解决方法是在cron里运行脚本后,添加>>/dev/null 2>&1,查看一下cron,查看是否与我的想法一致

果然是没有错误的输出,添加完>>/dev/null 2>&1在重启cron服务器就解决了

在查看perl进程

发现2726个进程,占用了大量的cpu与内存

去metalink里查看,发现这个问题是oem的故障导致,oracle给的问题的描述与解决方法为:

二、根据这个解决方法,我先关闭oem,关闭之前我先介绍一下我的系统与数据库的环境

系统版本为

数据库版本为

1、先登录oracle用户,然后关闭oem

这里需要注意的是,关闭oem的时候,刚开始什么提示都没有,查看系统的日志与oracle的报警日志也都没有任何的提示,但大家还是需要耐心的等待,我这步操作在30分钟的时候才完成了,当你运行完命令的时候,如果发现没有提示,那我建议还是多等一会比较好,不用发现没有提示就ctrl+c终止这个命令。

2、杀掉perl进程

oem关闭了,我们在查看一下内存与perl进程

perl进程

还是2726个,没有变化

内存

55m空闲

下面我们杀掉perl进程,使用 kill -9 $(ps -ef|grep perl|grep -v grep|awk ‘{print本文来源gao@daima#com搞(%代@#码网 $2}’)

然后在查看perl进程

现在perl进程没有了

查看一下内存

现在内存已经有6673m了,恢复正常

查看一下负载

现在负载变为正常了,负载这1分钟的为3.15,5分钟的为242.76,15分钟的为1236.57,

虽然负载为3,但我的服务器内为16核,所有负载为3没有问题

服务器cpu核数

现在问题解决了,如果想开启oem监控oracle的话,在oracle用户下使用emctl start dbconsole就可以。

提示:很多数据库的故障,在解决的时候,我建议大家还是先确定问题是如何产生的,美国服务器,找到解决问题的思路与方法,香港服务器,如果有metalink账号的话,最好登陆里面搜索问题产生的原因与解决方法,不太建议在百度或者谷歌里搜索问题解决方法,因为很多问题在百度或者谷歌里搜索的答案不一定准确或者适合你,如果你的生产库出现了问题,你按照百度或者故障里的解决方法解决,同时你也不明白问题的产生原因与解决的思路、办法的话,那么你只能拼运气来解决问题,解决了还好,皆大欢喜,如果没有解决甚至产生更坏的影响的话,估计你离走人不远了。

本文出自 “吟—技术交流” 博客,请务必保留此出处


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:oracle真实案例之oem大量占用cpu与内存问题的解决方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址