CPU持续100%分析并解决
背景
接到客户电话,说某系统数据库服务器CPU利用率从上午8点开始到现在基本上都是100%的情况,影响到了业务。让给看看是什么原因导致的,怎么紧急处理一下。
现象
查看CPU利用率,确实一直是90%以上的情况。
在CPU高的地方查看当时运行的语句,发现有一类语句并发量非常大,且大多数的运行状态为runnable(等待执行)。runnable代表这个会话没有资源等待,可以执行,但没有 CPU 可用,可以理解为正在等待 CPU 这项系统资源。出现这种等待,往往是系统没有足够的CPU来处理并发任务。

基本上可以确定导致CPU高的原因就是这条语句了。
语句内容:
1 SELECT
2 sendtaskvi0_.idAS id1_0_,
3 sendtaskvi0_.click_urlAS click_ur2_0_,
4 sendtaskvi0_.create_timeAS create_t3_0_,
5 sendtaskvi0_.crf_nameAS crf_name4_0_,
6 sendtaskvi0_.ysmcAS ysmc37_0_
7 FROM
8 dcrf_all_**** sendtaskvi0_
9 WHERE
10 sendtaskvi0_.stage_id= @P0
11 AND sendtaskvi0_.person_id = @P1
12 AND sendtaskvi0_.plan_module_num = @P2
13 AND sendtaskvi0_.task_type = @P3
14 AND sendtaskvi0_.xh = @P4
15 AND sendtaskvi0_.table_name = @P5
16 AND sendtaskvi0_.sf_status <> @P6
dcrf_all_**** sendtaskvi0_ 为视图,定义如下图:

分析
通过SQL专家云智能分析,提示视图里相关的两个表并没有相应的索引,通过专家云生成的两个创建索引的脚本执行创建。
解决
创建索引后CPU得到明显下降:
活动会话数量明显下降:

索引的重要性
一个系统的整体缓慢往往都是因为索引问题导致的,优化索引是对系统最简单的保养。不要小看一条语句的威力,一条语句足可以让你的系统彻底无法工作,相反优化一条重要的高频语句就可以让你的系统变的流畅。
北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台金牌合作伙伴,卫宁健康数据平台战略合作伙伴。通过产品+服务双轮驱动的业务模式,14年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。
CPU持续100%分析并解决的更多相关文章
- Juniper SRX550防火墙web页面CPU达到100%的故障解决办法
Juniper SRX550防火墙web页面CPU达到100%的故障解决办法 利用telnet远程连接主机,对web页面注销重新登录即可,在配置中输入命令:run restart web-manage ...
- 一条语句导致CPU持续100%
一大早收到一堆CPU预警邮件,通常每天只在统计作业执行期间会收到2~3封CPU预警邮件.这次的预警来自另一台服务器,并且明细数据显示其CPU一直维持在49%.登录到服务器,查看任务管理器(查看资源监视 ...
- HashMap-死锁导致cpu占用100%分析(转)
最近项目里面的一段千年代码出了问题,这个问题以前也出现过,不过不是那么明显,这次迁移机器由以前的4台机子变成2台以后问题被放大,最终不得不解决,特此分析一下. 先放出问题的代码 ? 1 2 3 4 5 ...
- 记java应用linux服务单个CPU使用率100%分析
之前在做项目的过程中,项目完成后在linux服务器上做性能测试,当服务跑起来的时候发现cpu使用率很奇怪,java应用把单个cpu跑满了,其他cpu利用率0%. 刚开始遇到这问题的时候我第一时间反应使 ...
- mds的cpu占用问题分析以及解决办法
前言 mds是ceph里面处理文件接口的组件,一旦使用文件系统,不可避免的会出现一种场景就是目录很多,目录里面的文件很多,而mds是一个单进程的组件,现在虽然有了muti mds,但稳定的使用的大部分 ...
- 数据库服务器CPU持续百分之百、部分Session一直处于执行状态---等待事件为:asynch descriptor resize(Oracle Bug )
问题描述: 项目反馈数据库服务器的CPU持续100%的情况,跟踪发现很多活动会话的等待事件是“asynch descriptor resize”,并且这些会话一直处于Active状态,而这些会话执行的 ...
- 【故障公告】数据库服务器 CPU 近 100% 引发的故障(源于 .NET Core 3.0 的一个 bug)
非常抱歉,这次故障给您带来麻烦了,请您谅解. 今天早上 10:54 左右,我们所使用的数据库服务(阿里云 RDS 实例 SQL Server 2016 标准版)CPU 突然飙升至 90% 以上,应用日 ...
- [Java] CPU 100% 原因查找解决
CPU 100%肯定是出现死锁,这个时候观察内存还是够用的,但是CPU一直100%,以下几步解决: 1. 找到进程消耗cpu最大的 $top top - :: up days, :, user, lo ...
- w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法
对于IIS 管理员来说,经常会碰到 Web 服务器 CPU 占用 100% 的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析 w3wp.exe(IIS ) 占用 CPU 100% 的一些 ...
- Linux jstack分析cpu占用100%
背景: 运行测试程序后,top命令发现某个进程(pid)占用cpu达到100%. 查看哪个线程占用最多资源: ps mp pid -o THREAD,tid,命令查看这个进程下面的所有线程占用情况 ...
随机推荐
- Java手写一个批量获取数据工具类
1. 背景 偶尔会在公司的项目里看到这样的代码 List<Info> infoList = new ArrayList<Info>(); if (infoidList.size ...
- Java中将 int[] 数组 转换为 List(ArrayList)
前言 说起数组转换成 ArrayList,很多同学第一反应就是遍历数组,将元素逐个添加到 ArrayList 中,但是这个看着就lower,一般不会这么答. 所以马上就会想到Arrays工具类的 as ...
- ATM购物车项目 三层架构
目录 项目开发流程 项目需求 三层架构 (重点) 实际案例 展示层 核心逻辑层 数据处理层 ATM项目 项目开发流程 # 1.项目需求分析 产品经理(客户) 架构师 开发经理 1.架构师 开发经理提前 ...
- Jmeter 之提取的值为null时,if控制器中的判断表达式
场景:当level的值为null时则执行 {"code":0, "msg":null, "data": [ { "level&qu ...
- uniapp微信小程序 选择日期时间
一.根据需要点击选择时间日期,效果如下图: (1)新建一个dateTimePicker.js文件 function withData(param){ return param < 10 ? '0 ...
- CLI框架:klish安装与使用
在通信设备领域,思科的路由器设备可以用CLI进行操作.这里介绍的开源项目klish是思科CLI风格(CISCO-like CLI)的框架.命令配置文件为xml格式. 源码:pkun/klish: Th ...
- IPv4和IPv6地址的存取
存入IP地址时,使用inet_pton函数将输入的十进制字符串转出二进制.取出IP时再使用inet_ptop函数将"二进制整数"转成"点分十进制整数"显示.这两 ...
- Git强制覆盖master
场景 由于公司的项目中,有一个开发分支(这里假设dev)是一个严重偏离master,需要我去强制覆盖master. 问题 这个场景带来了两个问题: master是受保护不能强推 dev分 ...
- 3、数组、集合、Lambda、Stream与Optional类
一.数组: 数组保存在JVM堆内存中 1.数组的创建: (1).一维数组创建方式一: //一维数组方式一 Integer[] array01 = {1,2,3}; System.out.println ...
- 【进阶篇】Redis实战之Jedis使用技巧详解
一.摘要 在上一篇文章中,我们详细的介绍了 redis 的安装和常见的操作命令,以及可视化工具的介绍. 刚知道服务端的操作知识,还是远远不够的,如果想要真正在项目中得到应用,我们还需要一个 redis ...