记一次CPU飙升BUG】的更多相关文章

图文地址:https://mp.weixin.qq.com/s?__biz=Mzg3NjEzODQ4NQ==&mid=2247483690&idx=1&sn=7c926f40010fa6c927e34ae872a050ed&chksm=cf379bb0f84012a67c3fd36660695525b5254eb0720ff609f4bceb93d33fdf8c16847f60c9ae&mpshare=1&scene=23&srcid=0331alt…
目录 一.故障现象... 1 二.初步分析... 2 三.排障过程... 2 1.排查是否QPS或insert并发请求上升导致问题发生... 2 2.排查是否锁资源等待或block导致了insert变慢... 3 3.排查是否表上无用索引导致的写入时间较长... 5 4.人工抓取perf,排查CPU上升期间的资源消耗... 5 5.疑似触发MySQL BUG,进一步分析... 6 四.优化过程... 8 1.初步优化方案... 8 2.删除一批无用索引,将服务器内存升级到80G.. 9 3.未达…
背景 进入6月后,随着一个主要功能版本api的上线,服务端的QPS翻了一倍,平时服务器的CPU使用稳定在30%上下,高峰期则在60%上下,但是偶尔会有单台机器出现持续数分钟突然飙到90%以上,导致大量api响应缓慢超过客户端等待时间,触发其主动断开连接产生大量nginx499. 问题分析与解决 问题期间器资源情况 仔细查看问题期间的zabbix监控数据,发现90%的CPU占用中有10%上下是sys time, 5%上下是softirq time,两者相加可占到接近20%, interrupt和c…
一.引子 对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高. 二.问题复现 线上系统突然运行缓慢,CPU飙升,甚至到100%,以及Full GC次数过多,接着就是各种报警:例如接口超时报警等.此时急需快速线上排查问题. 三.问题排查 不管什么问题,既然是CPU飙升,肯定是查一下耗CPU的线程,然后看看GC. 3.1 核心排查步骤 1.执行“top”命令:查看所有进程占系统CPU的排序.…
本文转载自线上CPU飙升100%问题排查 引子 对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高. 问题复现 线上系统突然运行缓慢,CPU飙升,甚至到100%,以及Full GC次数过多,接着就是各种报警:例如接口超时报警等.此时急需快速线上排查问题. 问题排查 不管什么问题,既然是CPU飙升,肯定是查一下耗CPU的线程,然后看看GC. 核心排查步骤 1.执行"top"命令:…
记一次线上bug排查,与各位共同探讨. 概述:使用quartz做的定时任务,正式生产环境有个任务延迟了1小时之久才触发.在这一小时里各种排查找不出问题,直到延迟时间结束了,该任务才珊珊触发.原因主要就是后台有几个5分钟一刷的定时任务,调度器不停的调度后台任务,阻塞了别的任务,出现了问题. 本文主要目的:1.记录排查过程(思路): 2. 分析quartz的线程调度规则: 3. 针对本问题的相关解决方案: 排查过程:1…
因公司有业务服务器在阿里云上面,阿里云后台报警说,“有恶意程序在挖矿”,引起了高度重视,于是我登陆服务器进行排查. 登陆云服务器:系统centos7.5 第一步使用top查看资源情况. top 可以清楚的看到第一行:USER:test  cpu飙至384%,进程名字:.dhpcd 首先我跟开发的进行核实,是否有创建test用户,结果反馈没有,我问是否安装有.dhpcd服务,开发也说没有,作为一个运维人员我肯定知道装了哪些服务. 这个服务明显不是我公司安装的,test用户也是不自己创建的. ps…
MySQL数据库CPU飙升紧急处理方法 [日期:2014-01-22] 来源:Linux社区  作者:hcymysql [字体:大 中 小]       运行平稳的数据库,如果遇到CPU狂飙,到80%左右,那一定是开发写的烂SQL导致的,DBA首先要保证的是,数据库别跑挂了,所以我们要把那些运行慢的SQL杀死并记录到文件里,以便后面的排查. 这里用到一个工具pt-kill,它可以帮助你. pt-kill  --match-info "^(select|SELECT)" --busy-t…
服务器CPU飙升100%怎么排查 执行"top"命令,查看当前进程CPU占用的实时情况,PID列是进程号,确定是哪个应用程序的问题. 如果是Java应用导致的,怎么定位故障原因 执行"top -Hp 进程号"命令:查看java进程下的所有线程占CPU的情况. 执行"printf "%x\n 10"命令 :后续查看线程堆栈信息展示的都是十六进制,为了找到咱们的线程堆栈信息,把线程号转成16进制.例如,printf "%x\n 1…
MySQL数据库CPU飙升紧急处理方法 运行平稳的数据库,如果遇到CPU狂飙,到80%左右,那一定是开发写的烂SQL导致的,DBA首先要保证的是,数据库别跑挂了,所以我们要把那些运行慢的SQL杀死并记录到文件里,以便后面的排查. 这里用到一个工具pt-kill,它可以帮助你. 1 pt-kill  --match-info "^(select|SELECT)"--busy-time 3--victim all --interval 1--kill --print --daemonize…
windows环境下cpu飙升问题 线上某台runtime机器(windows Server)cpu报警,这种情况初步就是代码里面死循环了,先把机器下线了保证不再有新的任务分配进来,然而cpu使用依然不降这是正常的因为程序未结束死循环一直在运行. 找到java进程对应的pid. 找pid的方法是:打开任务管理器,然后点击 “查看” 菜单,然后点击 “选择列”,把pid勾上,然后就可以在任务管理器里面看到所有进程的pid值了.(也可以用第三步中提到的工具直接查看),windows10系统可以在详细…
本文转载自CPU飙升的问题 问题发现 事情是这样的,最近小码仔负责的项目预定今天凌晨2点上进行版本更新.前几天测试小姐姐对网站进行压力测试,观察服务的CPU.内存.load.RT.QPS等各种指标. 在压测的过程中,测试小姐姐发现我们其中一个接口,在QPS上升到400以后,CPU利用率急剧升高. 在这里我不再对CPU.内存.load.RT.QPS等做过多赘述,毕竟这几个点中的任何一个拿出来探讨,一篇文章都不一定写的完.有兴趣深究的小可爱就自己动手查一下吧. 这里我仅对QPS及CPU利用率做简单的…
线上服务CPU飙升 前言 功能开发完成仅仅是项目周期中的第一步,一个完美的项目是在运行期体现的 今天我们就来看看笔者之前遇到的一个问题CPU飙升的问题. 代码层面从功能上看没有任何问题但是投入使用后却让我头大 问题描述 系统上点击数据录入功能在全局监控中会受到相关消息的通知.此时服务器CPU飙升300% 问题定位 首先我们先梳理下Websocket的数据发送的简单原理示意图.往往定位问题得清楚我们的逻辑是什么 当一个客户端启动时除了和Websocket建立连接之外,我们还需要向Websocket…
怎么排查CPU飙升 线上有些系统,本来跑的好好的,突然有一天就会出现报警,CPU使用率飙升,然后重启之后就好了.例如,多线程操作一个线程不安全的list往往就会出现这种现象.那么怎么定位到具体的代码范围呢?今天笔者就教大家一个小技巧 代码准备 这次,笔者准备了一个demo代码,大致线程模型是这样的: 代码下所示: public class CpuHighExample {    public static void cpuHigh() {        final List<String> l…
线上服务器用的是某讯云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序.突然一则噩耗从前线传来:网站不能访问了. 此项目是我负责,我以150+的手速立即打开了服务器,看到Tomcat挂了,然后顺其自然的重启,启动过程中直接被killed,再试试数据库,同样没成功,多次尝试甚至重启机器无果.机制的我打了个top,出现以下内容: 这是谁运行的程序?不管三七二十一先杀掉再说,因为它就是Tomcat等程序启动不了的元凶.然而并没有什么卵用,过一会再看那个东西又跑出来占…
告警 正在开会,突然钉钉告警声响个不停,同时市场人员反馈客户在投诉系统登不进了,报504错误.查看钉钉上的告警信息,几台业务服务器节点全部报CPU超过告警阈值,达100%. 赶紧从会上下来,SSH登录服务器,使用 top 命令查看,几个Java进程CPU占用达到180%,190%,这几个Java进程对应同一个业务服务的几个Pod(或容器). 定位 使用 docker stats 命令查看本节点容器资源使用情况,对占用CPU很高的容器使用 docker exec -it <容器ID>bash 进…
引子 正值周末,娃儿6:30又如闹铃般准时来叫醒了我们.年前离开美菜,又回到了杭州.原本是想有更多时间陪伴娃儿,然而新的工作节奏与工作地点,让我们每天都是早上见面:这不,为了周末可以多玩一会儿,早早就过来唤醒我们.因为前几天我们就约好了周末一起放风筝.有些事儿,我以为只是随口一说,小孩子确真真的记着. 吃过早饭,拉着媳妇儿,领着娃,带上风筝就出门了.其实我是忐忑的,因为我也从来没有把风筝放起来过.来到草坪上,娃就拉着风筝如脱缰之马跑了起来.小孩子的幸福就这么简单,无关乎风筝能飞多高. 迎着暖暖朝…
大约有一年整没有写一篇博客了,由于各种原(jia)因(ban)导致闲暇时间要么拿着IPad看岛国奇怪的片(dong)子(hua).要么拿着kindle看各种各样的资(xiao)料(shuo).本来想写的一个介绍MEF的专题也果断在完成50%后砍掉,结果这两天想准备点关于IOC(不是国际奥委会那个IOC)的内部材料,发现之前准备的一些资料也已经顺手删掉了,可惜可惜. 不说别的了,就说这两天自己给自己挖的一个坑.说起来还挺有趣的,原因不复杂,就是最基本的知识点,只是手头的模块略复杂,一开始还真没猜到…
场景 先上逻辑代码 1: /// <summary> 2: /// 图片真实地址 3: /// </summary> 4: public string FullImagePath 5: { 6: get 7: { 8: _fullImagePath = ImagePath; 9: if (string.IsNullOrWhiteSpace(_fullImagePath)) 10: return _fullImagePath; 11: if ( Uri .IsWellFormedUr…
在做产品的某个核心模块的性能优化时,发现压到100并发时应用服务器的CPU就飙升至90%以上,50并发以后TPS就基本定格在一个数值上.使用性能监视器收集应用服务器的数据,发现每秒的.NET CLR Exceptions数据特别高,且异常数量与CPU使用率的曲线呈正比例的关系. 并发测试的业务结果是正确的,LoadRunner也没有发现大量的错误,那么大量的内部异常从哪儿来的呢?使用windbg输出所有异常信息,查阅Log日志. 打开windbg,attach到指定进程,设置捕获异常并输出的命令…
就是6张表的关联查询,写了一个存储过程,使用4层for来处理 bug:最后一个for中,两张表的关联条件少了一个,结果数据多查了. 排查办法:使用dbms_output.printline('');每一个for中加一个 dbms_output.put_line('-3.'||x.name);//把与下层for关联的关键信息打印出来dbms_output.put_line('-2.'||x.name);//把与下层for关联的关键信息打印出来dbms_output.put_line('-1.'||…
最近花了差不多1天的时间在折腾一个Bug,该Bug的表象如下: 这个Bug还特别独特,在开发电脑中无提示,在终端用户那里每次使用软件的时候都报这个.仔细思考了一下最近在源码中新添加的功能,没发现有啥特别明显的问题.于是,根据字面意思的理解是“运行时错误”,所以一开始解决这个问题的思路是将所有应用程序的运行时拷贝至应用程序目录.尝试过之后,依然报这个异常.分析可能跟运行时的动态链接库没有关系.于是,调整解决问题的思路,考虑将工程中新添加的代码进行分割.部分部分的测试新添加的代码到底那里有问题,排查…
1.android 4.1.2 的兼容bug 一直以为Android 测试 4 5 6就可以了,结果发现Android4.1.2 和Android4.3之间还是有差距的. 处理办法:验证版本兼容的时候,需要覆盖所有系统版本 2.https和http 测试h5活动时,没有考虑到能否支持https,上线后客户端内自动将http全部https,导致二次分享不可用 处理办法:以后测试类似的活动,不仅要看http,还要看https 3.ios机型native页面,部分运营位的标题显示不全. bug表现形式…
转载请注明出处:http://www.cnblogs.com/Ray1024 一.问题描述 在MFC中使用Direct2D有现成的方法,在Visual Studio 2010 SP1及以上环境中MFC封装了Direct2D,我们就可以更加方便.更加简洁地使用Direct2D来进行高效率绘图了,详细教程见msdnhttps://msdn.microsoft.com/zh-cn/library/gg482848.aspx. 但是在实际项目中遇到一个问题:MFC项目编码方式为unicode时,CRen…
公司开发和测试环境采用的erlang版本是19.0.3,rabbitmq版本为3.6.10.集群条件下稳定使用了近一年时间,没什么问题. 为了保持和线下一致,线上生产环境采用了相同的版本,运行几个月后,出现问题.现象如下: 在几天时间内,有三个队列出现没有消费者的问题.查看rabbitmq的日志. operation queue.declare caused a channel exception not_found: failed to perform operation on queue '…
前不久公司进行了一次大促,晚上值班.大促是从晚上8点多开始的,一开始流量慢慢的进来,观察了应用的各项指标,一切都是正常的,因为这是双11过后的第一次大促,想着用户的购买欲应该不会太强,所以我们的运维同事9点多就回家了在家里面远程支持,留下交易组和其它后端的技术值班,楼主就是交易组的.谁知10点整的时候我们的前置服务器突然告警,报资源占用过高.如下图: 说实话,load超过10还是第一次见.... 我是第一个发现情况的,所以我第一时间把告警信息发到群上之后,然后通知运维jstack当时的线程堆栈.…
本人使用的是Chrome 30 flash 18,在看视频或者登陆有调用flash插件的页面之后,经常会遇到Shockwave Flash插件CPU占用超过50%的情况(在Chrome的任务管理器可以看到).找了很久终于找到解决方法: 在地址栏中输入chrome://plugins,进入插件标签页: 在Adobe Flash Player插件组中一般有两个插件,如果看不到,点击右上角的"详细信息"按钮 : 将类型为PPAPI(进程外插件)也就是位置带有chrome的那个插件禁用掉: 修…
现象: 测试提了一个bug,我完全复现不了,但是最吊诡的是在其他人的机器上都可以复现.起初以为是SVN合并后出现的冲突,后来经过对比法排查: step 1: 我本地开两个jetty,一个跑合并之前的版本,一个跑合并之后的版本,数据库.redis配置都一样的,结果一致,由此可以推测应该不是代码的问题. step 2: 我电脑和别人电脑同样的配置.连的一个数据库,同样的代码.同样的数据,得到了两个结果,我这里是正常的,而且除了我其它人都可以复现,我喵了狗.... 我还一度以为是灵异现象....o(╯…
下午写程序,写的好好的,突然报错"在注释中遇到意外的文件结束". 下面是官方给出的错误原因是缺少注释终结器 (* /). // C1071.cpp int main() { } /* this comment is fine */ /* forgot the closing tag // C1071 实际查找并未找到缺少*/的错误. 之后发现,即使将新添加的代码删除,依然报错. 经过搜索,找到了原因: utf8 格式出错,有一个注释是/* 中文*/,这里由于编码问题,中文和英文联合起来…
前言   前几天在自己服务器上搭了redis,准备想着大展身手一番,昨天使用redis-cli命令的时候,10s后,显示进程已杀死.然后又试了几次,都是一样的结果,10s时间,进程被杀死.这个时候我还没发现事情的严重性. 发现问题   进程莫名被杀死,可能是cpu被占满,赶紧看了一下cpu. [root@VM_0_13_centos etc]# top   果然如此,cpu被莫名的占满了.简单,根据pid杀死进程就行了. [root@VM_0_13_centos etc]# kill -9 27…