因程序问题引起的服务器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
对于绝大多数实时程序来说,实时处理相关程序中的循环问题所带来的对机器的损耗和自身的处理速度的平衡,以及与其他程序的交互以及对其他功能的影响难免会成为程序设计中最大的障碍同时也是最大的突破点. 在所有这 ...
随机推荐
- 【模拟】UVa 12108 - Extraordinarily Tired Students
When a student is too tired, he can't help sleeping in class, even if his favorite teacher is right ...
- asp.net下的b/s架构
最近一直在做asp.net下的b/s架构的程序.整理一下可以采用的架构. 简单三层架构 基于接口和工厂模式的三层 前台用jquery调用http请求(ashx),ashx再调用逻辑接口 虽然很早就知道 ...
- .NET平台数据持久层框架
在.NET平台下的几个数据持久层框架: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS.NET 5.DAAB 6.DLinq
- Android之记账本
这个ColaBox记事本是我从网上下载下来的拿来学习一下的(APK下载点这里.) 从登记收入与开支的页面跳转到账单页面运用了SQL数据库的录入,整体表的结构为: db.execSQL("CR ...
- Mac OSX用终端检测文件的sha1值
打开终端,输入shasum空格然后把文件拖进来回车即可;
- Objective-C 【关于导入类(@class 和 #import的区别)】
之前我们分析过 #include 和 #import 的区别,#import不会引起交叉编译,#import 确定一个文件只能被导入一次,使在递归包含中不会出现问题. 那么 #import 和 @cl ...
- int/double/string使用
在计算机中存储数据和儿童在抽屉中存放物品很类似. 例如: 要在计算机中存一个数字50,需要两句话. int a; //将要放的物品告诉家长 a=50; //将物品放到某个抽屉中 计算机存储变量的过 ...
- 一次完整的http请求所需要完成的步骤
出处:简明现代魔法 http://www.nowamagic.net/librarys/veda/detail/1339 HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器 ...
- Smarty模板引擎技术
Smarty模板引擎技术 什么是模板引擎? 什么是Smarty模板引擎? 为何选择Smarty模板引擎? 如何使用Smarty模板引擎? 一.历史背景 场景一:回顾之前编写PHP项目的方式 //链接数 ...
- 关于C/C++中的位运算技巧
本篇文章讲述在学习CSAPP位运算LAB时的一些心得. 移位运算的小技巧 C/C++对于移位运算具有不同的策略,对于无符号数,左右移位为逻辑移位,也就是直接移位:对于有符号数,采用算术移位的方式,即左 ...