遇到测试环境的服务器资源占用过高如何解决


在微信群看到别人分享的面试题,关于服务器资源占用过高的问题,想起之前曾经遇到过这样的问题,于是翻看聊天记录整理了一下如何解决类似问题。


2020年12月23日这天部署应用包的时候,发现在运维平台部署应用的时候,部署了很久,还没有完成。在这几天前,部署应用的时候,就有些异常,应用部署需要很久才能部署完成,当时没有去盘查问题,直到23号这天完全部署不上应用了。

于是我登陆服务器,top查看一下系统中各个进程的资源占用状况,发现cpu占用都快爆了。
用ps -ef|grep 查看这些异常的进程,全都是Oracle的,发现全是空连接占用导致。

在这里插入图片描述
然后我准备重启一下Oracle。
用Oracle用户登录服务器,
先执行sqlplus /nolog
(注:sqlplus /nolog不进行连接数据库的操作。/nolog是不登陆到数据库服务器的意思,如果没有/nolog参数,sqlplus会提示你输入用户名和密码)
再执行conn /as sysdba;
执行shutdown immediate;关闭数据库
然后执行startup启动数据库

在这里插入图片描述
这时候发现关闭数据库的时候,卡住了,等了很久,应该还是因为空连接的原因,oracle空线程太多卡住了,然后我就使用命令
ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
杀掉所有Oracle的空连接进程,把user为Oracle的pid都kill掉。
都删除后,执行conn /as sysdba 然后startup,数据库启动后遇到个小问题,然后百度了一下,也记录一下。

在这里插入图片描述

在这里插入图片描述
虽然已经知道了是数据库的问题,但是排查原因没那么快,就整理了一下临时解决方案,因为第二天还是会出现占用资源过高的情况。
1、清除空连接

ps -ef|grep -v grep |grep LOCAL=NO |awk ‘{print $2}’ |xargs kill -9
(注:上面批量杀进程的指令是我百度的,这里是同事告诉的另一种写法)
2、用oracle登录连接数据库后 执行关闭数据库 shutdown immediate
3、oracle登录执行 lsnrctl stop
4、oracle登录执行 lsnrctl start
5、用oracle登录连接数据库后 执行关闭数据库 startup


最后还是通过百度找到了解决的方法,百度yyds!记录一下。

在这里插入图片描述
链接: ORACLE占用大量系统CPU,致使系统宕机.

2021年4月27日

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值