因程序问题引起的服务器CPU负荷一直保持在90%以上
昨天早上刚到办公室,就接到客户的电话说其某台小型机的CPU负荷一直保持在90以上,告警短信发个不停,一直没有间断过。该服务器是一台IBM的小型机,性能应该还是不错的,出现这样的情况确实不太正常。登陆上小型机去TOPAS跟踪了一段时间,发现KERNEL主要保持在10-20之间,但是USER就一直保持在50-70。到底是什么用户进程耗费了那么多的CPU资源?该服务器是数据库服务器,上边运行的是SYBASE数据库。登陆到数据库上进行SYSMON,看到IO并不繁忙,但是CPU确实使用率比较高。跟踪观察到的现象级初步判断:1、数据库目前没有什么系统慢跟IO没有太大关系,WAIT IO也几乎接近于0。2、服务器应该主要都是在做计算型的操作。3、服务器上并没有部署有其他应用,就是数据库一个应用而已。
怎么回事?什么时候开始的呢?服务器发生了什么变化?经过与管理员沟通,发现昨晚该服务器对应的业务系统进行了程序更新的操作。按照以往的经验,估计是程序有问题了,而且从监控结果上看,IO不忙,也没有看到有大面积的阻塞,那数据库中实际上并没有存在什么大量的操作。那么,还有什么可能会产生这样的影响?“定时刷新、更新”类型的操作可能会有重大嫌疑。于是,立刻找到昨晚进行程序更新的人员,经过了解,昨晚更新的程序确实有包含一个会定时去检查接口状态,并从数据库读取数据送上接口的操作,并且频率设置是放在数据库的某个参数表里的。
是不是频率设置得不对,或者根本就是失效了呢?
“你们是在哪个表里进行记录执行频率信息的?我们去看看这条信息。“不查不知道,一查吓一跳,居然根本找不到那条信息,也就是说,程序失去了频率控制,由于程序写得不够严谨,造成了程序一直在不间断的往数据库发送相关打开连接、处理数据、关闭连接等相关请求。
”赶紧把频率设置好,你们本应该设置的频率是多久一次?“ 接着,赶紧把控制频率的记录插入到参数表中,将频率设置为每分钟一次。
CRT的窗口一直都在监控TOPAS的情况,在插入数据后,不到一分钟的时间,发现小型机的CPU负荷直接就回落到整体负荷在40%左右,这应该就是问题的根源了!接着又跟踪了一段时间,确实没有问题了,于是跟客户汇报了处理结果,并且召集了进行程序发布的相关人员,对此问题进行了分析、总结,并提出检查点的监控。希望,下一次这样的问题不要再出现了,希望通过这次事件的处理,开发人员都可以得到启发,认真检查好每一段代码,尽量不留下给别人可以犯错误的机会。
因程序问题引起的服务器CPU负荷一直保持在90%以上的更多相关文章
- 服务器CPU又爆了?Linux快速排查Java程序占用CPU很高的方法
这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的. 线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 1.场 ...
- 服务器CPU使用率高的原因分析与解决办法
我们的服务器在使用操作系统的时候,用着用着系统就变慢了,打开“ 任务管理器 ”一看,才发现CPU使用率达到80%以上.这是怎么回事情呢?遇到病毒了吗?硬件有问题?还是系统设置有问题呢?在本文中将从硬件 ...
- asp.net mvc4 简单的服务器监控开发之C#获取服务器CPU、RAM、TCP等系统信息(上)
一.背景 前段时间服务器出了点问题,加上学业愈来愈紧张,写博文分享的时间越来越少.虽然不是第一次在博客园上写经验,但是近期分享的博文得到了不少的朋友支持和指正,在这里内心非常感激和开心.希望以后能认真 ...
- 在Ubuntu 11.10工具栏上用数字显示网速、CPU负荷和内存占用量『译』
基本上照抄了<How To Display Network Upload / Download Speed On The Panel In Ubuntu 11.04>,只不过我的实践环境是 ...
- 服务器CPU繁忙或内存压力引起网络掉包的浅析与总结
最近一段时间遇到了两起有意思的故障,现象都是网络掉包或网络断开,不过这些只是表面现象,引起现象出现的本质才是我们需要关注的重点: 案例1: 平台 :VMware平台 操作系统 :Windows ...
- 面试连环炮系列(八):服务器CPU飙升100%怎么排查
服务器CPU飙升100%怎么排查 执行"top"命令,查看当前进程CPU占用的实时情况,PID列是进程号,确定是哪个应用程序的问题. 如果是Java应用导致的,怎么定位故障原因 执 ...
- 【转帖】处理器史话 | 服务器CPU市场的战役, AMD、Intel和ARM的厮杀
处理器史话 | 服务器CPU市场的战役, AMD.Intel和ARM的厮杀 https://www.eefocus.com/mcu-dsp/377300 说完了个性鲜明的消费类电子,接下来聊一聊通 ...
- 将 Django 应用程序部署到生产服务器
原文出自: http://www.ibm.com/developerworks/cn/opensource/os-django/ 比较有启发性质的一篇文章,会避免很多弯路 Django 是一个基于 P ...
- linux c++应用程序内存高或者占用CPU高的解决方案_20161213
对于绝大多数实时程序来说,实时处理相关程序中的循环问题所带来的对机器的损耗和自身的处理速度的平衡,以及与其他程序的交互以及对其他功能的影响难免会成为程序设计中最大的障碍同时也是最大的突破点. 在所有这 ...
随机推荐
- java 类从哪个jar包加载的
<%@page contentType="text/html; charset=GBK"%><%@page import="java.security. ...
- android 获取IMEI号
android 获取 imei号码 核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId( ...
- Windows中使用cmd实现自定义Service的安装与卸载
在项目中,有些时候我们需要自定义一些Service来定时处理一些业务逻辑,这时候就涉及到如何安装与卸载service的问题了,具体如何安装呢?在此整理一些解决方案供大家参考: 方案一: 1.运行--〉 ...
- CSS3秘笈第三版涵盖HTML5学习笔记13~17章
第13章,构建基于浮动的布局 使用的是float(浮动)属性 注:float:none值将取消所有浮动,通常只用来取消元素中已经应用的浮动. 切记:不需要给正文的div设计宽度,即使设计成固定宽度也不 ...
- Unity3D 之UGUI 滚动条
先上效果图. 这里来说明下UGUI 滚动条,不涉及到代码. 主要用到的控件Scroll Rect ,Mask,Scrollbar. 第一步,建立一个Image,然后绑定一个滑动块的组件,添加一个mas ...
- HTML特殊符号对照表(转)
table { border-collapse: collapse; } #htmlchar-container-list { width: 100%; border-top: 2px solid # ...
- JavaScript之图片滚动
向上滚动: <!doctype html> <title>javascript无缝滚动</title> <meta charset="utf-8&q ...
- 一些C++内容的总结(2013.10.17)
1.using namespace std;使用的是C++标准库当中的一些变量,比如cout,cin等.但是using namespace std作用域只对当前文件内作用,所以using namesp ...
- .Net 微信开发与微信支付
.NET https://github.com/JeffreySu/WeiXinMPSDK JAVA http://git.oschina.net/pyinjava/fastweixin ...
- JAVA输入/输出系统中的其他流学习笔记
一.字节数组流 字节数组流类能够操作内存中的字节数组,它的数据是一个字节数组.字节数组流类本身适配器设计模式,它把字节数组类型转为流类型使得程序能够对字节数组进行读写操作. 1.ByteArrayIn ...