据库异常sql耗尽CPU资源

问题描述

核心系统出现数据库卡顿,严重影响前端业务响应,节点一数据库服务器CPU几乎耗尽,多次重启数据库依然没有效果,仔细诊断初步判定业务SQL执行效率不佳所致,特别是SQL_ID为1hwgwzgw0vfrc的SQL,半小时内执行次数比平时多了2300多次。高并发下大量消耗系统资源特别是CPU几乎被耗尽。最后通过修改SQL 1hwgwzgw0vfrc问题得以解决。

问题详细诊断过程

比较正常运行和异常时的awr报告,下面是获取9点半到10点的半个小时的awr报告,节点一正常时的数据库负载性能:

节点一异常时的数据库负载性能:

检查发现节点一DB Time在正常的时候消耗939.91分,cpu核数32核,已经接近满负荷,异常时消耗3421.59分,已经完全超负荷运行,导致数据库性能急剧下降。
检查CPU消耗情况,节点一正常情况

节点一发生性能问题

检查发现正常运行的时候CPU还有9.8%空闲,发生性能问题时,CPU资源根本没有剩余,满负荷在运行。
通过“SQL ordered by CPU Time”检查sql语句消耗cpu情况,正常时,“1hwgwzgw0vfrc”耗CPU整体达47.65%,如下图:

发生性能问题时,耗CPU整体达58.13%,如下图:

通过“SQL ordered by Elapsed Time”检查sql语句执行情况,正常时,“1hwgwzgw0vfrc”运行6549次,每次2.75秒:

发生性能问题时,执行8913次,每次14.62秒

由于原来cpu就快耗尽,异常时半个小时数据执行多了2000多次,导致CPU超负荷运行,整体性能下降,每次执行时间消耗变长。
检查节点二的awr报告,资源情况正常。
现场了解rac配置负载情况,客户是通过vip配置了两个节点,客户现场登录服务器,检查服务器CPU资源消耗情况:
节点一(WW01)

节点二(ww02)

发现两个节点资源使用极不均衡,建议调整应用配置,最好直接通过scanip连接。
获取ash报告检查语句性能消耗情况:

发现主要消耗语句sql_id为“1hwgwzgw0vfrc”,消耗近60%的资源,语句如下:

SELECT aab001, aab004, nvl((select (select role_id from sys_user_account_role where user_id = t.aac001) from sys_user_account t where (businessid = to_char(si_ab01.aab001) or (select aab003 from sys_user_account_exts t1 where user_id=t.aac001)=si_ab01.aab003) and is_locked=‘0’ and type=‘02’ and rownum < 1.5), ‘-1’) role_id , nvl(bab078, ‘0’), nvl(bab084, ‘-1’), nvl(AAE119, ‘-1’), aab003, AAB019, nvl((select account from sys_user_account t where (businessid = to_char(si_ab01.aab001) or (select aab003 from sys_user_account_exts t1 where user_id = t.aac001) = si_ab01.aab003) and is_locked = ‘0’ and type = ‘02’ and rownum < 1.5), ‘-1’) account from si_ab01 WHERE aab999 = :1 and rownum<1.5

进一步分析

通过sql_id,检查执行计划:
select * from table(dbms_xplan.DISPLAY_CURSOR(‘1hwgwzgw0vfrc’, null, ‘ADVANCED ALLSTATS LAST’));


主要资源消耗在SYS_USER_ACCOUNT表上,其中PK_AC01_ACCOUNT_TYPE数据比较集中,由于数据查询比较复杂,在执行过程中也有做全表查询的,如下图:

这说明走全表查询在数据库层面认为消耗比走索引低,由于整个sql执行消耗资源较高,建议开发做sql语句改写。
开发修改该语句后,业务恢复,CPU消耗情况也恢复正常:

重新获取awr报告,检查CPU资源均正常。

故障总结

由于SQL语句(sql_id: 1hwgwzgw0vfrc)执行性能较差,导致CPU资源耗尽,影响了整体数据库运行,总结情况如下:
1、rac两个节点访问量不均衡,发生性能问题时节点一CPU资源耗尽,建议通过scanip去访问数据库。
2、发生异常情况时,消耗高资源(CPU)的sql语句“1hwgwzgw0vfrc”,sql执行次数比正常情况多,同正常比较,半个小时内就多执行了2300多次。
3、建议优化sql_id为“1hwgwzgw0vfrc”的sql语句,该语句已经优化,业务恢复正常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/399927.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5GC 网元AMF、SMF、AUSF、UPF、PCF、UDM、NRF、NSSF、NEF介绍

文章目录 1、AMF2、SMF3、AUSF4、UPF5、PCF6、UDM7、NRF8、NSSF9、NEF10、DN 1、AMF Access and Mobility Management Function&#xff0c;接入和移动性管理功能&#xff0c;执行注册、连接、可达性、移动性管理。 为UE和SMF提供会话管理消息传输通道&#xff0c;为用户接入…

C语言读取 ini 配置文件,修改/添加键值对

C语言读取 ini 配置文件&#xff0c;修改/添加键值对 C语言读取 ini 配置文件&#xff0c;对section中的键值对进行修改/添加&#xff0c;如果section不存在&#xff0c;则在末尾将新的section/key/value 添加进去。 一、了解什么是INI文件&#xff1f; ini 文件是Initializ…

人工智能|深度学习——基于数字图像处理和深度学习的车牌定位

1.研究背景及研究目的和意义 车牌识别Vehicle License Plate Recognition VLPR) 是从一张或一系列数字图片中自动定位车牌区域并提取车牌信息的图像识别技术。车牌识别 以数字图像处理、模式识别、计算机视觉等技术为基础&#xff0c;是现代智能交通系统的重要组成部分&#xf…

ABAQUS中创建主视图命令菜单和工具条

在ABAQUS中操作模型时&#xff0c;经常需要选择边界上的元素&#xff0c;如果使用框选则需要将模型摆正&#xff08;处于一个主视图角度&#xff09;&#xff0c;虽然ABAQUS提供了6个主视图工具按键&#xff0c;但实际使用中还有有一些不便的&#xff1a; ABAQUS提供的视角只是…

复高斯分布的随机变量的模方的分布

文章目录 服从复高斯分布的随机向量的模方的分布问题的源头矩阵服从复高斯分布向量服从复高斯分布杂记需要与上面向量的分布区别开的是&#xff1a;服从复高斯分布的随机变量的和的平方的分布 服从复高斯分布的随机向量的模方的分布 已知 x ∈ C L 1 \mathbf{x} \in \mathbb{…

【CVE-2024-21626】容器逃逸漏洞修复

哈喽大家好&#xff0c;我是咸鱼。 好久不见&#xff0c;最近有一个很火的 CVE——runc 容器逃逸漏洞。年前的时候我们已经在测试环境进行了相关操作打算年后线上进行修复。 因为今天咸鱼才开工&#xff0c;所以文章也就拖到了现在 &#x1f603; 漏洞介绍 简单来讲&#xf…

怿星科技测试实验室(EPT LABS)服务介绍

据中国汽车工业协会数据&#xff0c;2023年我国汽车产销量分别达3016.1万辆和3009.4万辆&#xff0c;年产销量双双创历史新高&#xff0c;汽车行业进入了新时代。新汽车时代下的OEM竞争更激烈&#xff0c;汽车电子架构更复杂&#xff0c;研发周期更短&#xff0c;软件迭代更快&…

汽车线束中的螺栓拧紧有哪些要求——SunTorque智能扭矩系统

在现代汽车的电气系统中&#xff0c;线束是连接各个电器元件的桥梁&#xff0c;承担着传输电能、信号以及实现控制功能的重要任务。而在线束的装配过程中&#xff0c;螺栓的拧紧技术是确保线束固定、连接可靠的关键环节。SunTorque智能扭矩系统和大家一起探讨汽车线束中的螺栓拧…

Java中的关键字

✨✨ 所属专栏&#xff1a; Java基石&#xff1a;深入探索Java核心基础✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; Java中的关键字是一些具有特殊含义的单词&#xff0c;它们在语法中有特定的用途&#xff0c;不能用作标识符&am…

响应式编程上下文

标题响应式编程代码示例 代码示例 多个消费者订阅了同一个生产者 package com.yaeher.infrastructure.userinfovault.user; import org.junit.jupiter.api.Test; import reactor.core.publisher.Flux; import reactor.core.scheduler.Scheduler; import reactor.core.schedul…

基于ImageSharp实现趣味横生的点选验证

引言 随着安全需求的不断提升&#xff0c;传统的文本验证码已经无法满足防止机器自动识别和攻击的要求。点选式验证码作为一种交互式的验证手段&#xff0c;因其更难被自动化脚本破解而逐渐受到欢迎。利用开源图像处理库SixLabors.ImageSharp来实现点选式验证码功能。 ImageS…

APP 有漏洞被测要下架,怎么处理?

事情的经过是这样的&#xff1a; 1&#xff1a;学员公司测试的 APP 发现有漏洞&#xff0c;被要求下架 2&#xff1a;他被公司要求去查询 APP 哪里有漏洞 3&#xff1a;他来寻求帮助&#xff0c;推荐几款安全测试扫描漏洞的问题。 事情的梳理&#xff1a; 1:我们看了他的 …

UE5 C++ UENUM 和 USTRUCT

一.首先在APawn里声明 UENUM 和 USTRUCT。UENUM 有两种定义方式 一种是使用命名空间&#xff1a; 还有是继承uint8&#xff1a; 通过申明class类 别名来替代 USTRUCT的定义 上面的第二种有类似但仍然有很多的差异&#xff1a; 首先要有GENERATED_USTRUCT_BODY()这个函数 并且…

fastApi笔记04-查询参数和字符串校验

额外校验 使用Query可以对查询参数添加校验 from typing import Unionfrom fastapi import FastAPI, Queryapp FastAPI()app.get("/items/") async def read_items(q: Union[str, None] Query(defaultNone, max_length50)):results {"items": [{"…

春招面试准备笔记——过拟合和欠拟合

介绍 过拟合&#xff1a;过拟合是指模型在训练过程中过于复杂&#xff0c;拥有过多的参数&#xff0c;以至于在训练数据集上表现良好&#xff0c;但在未见过的测试数据上表现很差的现象。这种情况下&#xff0c;模型可能只是“死记硬背”了训练数据的特征和噪声&#xff0c;而…

SpringBoot中使用PageHelper插件实现Mybatis分页

场景 SpringBoot中整合Mybatis时一般添加的依赖为 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.1</version></dependency> 如果要实现分页查…

解锁ThreadLocal的问题集:如何规避多线程中的坑

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 解锁ThreadLocal的问题集&#xff1a;如何规避多线程中的坑 前言内存泄露问题内存泄漏原因&#xff1a;检测和避免内存泄漏的实用建议&#xff1a; 线程池带来的数据混乱最佳实践&#xff1a;注意事项…

CVE-2024-0918 TEW-800MB RCE漏洞分析

漏洞描述 固件版本为1.0.1.0的TEW-800MB路由器存在命令注入漏洞。如果攻击者获得了web管理权限&#xff0c;他们可以将命令注入到httpd未知函数中的post请求参数DeviceURL中&#xff0c;从而获得shell权限。。 参考链接 TEW-800MB (notion.site)https://warp-desk-89d.notio…

从宏观到微观——泽攸科技ZEM系列台式扫描电子显微镜在岩石分析中的应用

岩石作为地球地壳的主要构成物质之一&#xff0c;其微观结构对于了解地质过程、资源勘探以及工程建设具有重要意义。按照岩石的成因&#xff0c;可以把它们分为三类&#xff1a;岩浆岩、沉积岩和变质岩。在地球表面&#xff0c;沉积岩占据75%的份额&#xff0c;而在地壳深度&am…

Family Day/园区参观路径(C语言)

题目描述 园区某部门举办了Family Day&#xff0c;邀请员工及其家属参加&#xff1b; 将公司园区视为一个矩形&#xff0c;起始园区设置在左上角&#xff0c;终点园区设置在右下角&#xff1b; 家属参观园区时&#xff0c;只能向右和向下园区前进&#xff0c;求从起始园区到终…