大多数时候是软件的Bug,但是... 有时候的确是硬件的问题!
在我们性能最好的服务器中,有一台是从之前的64位测试项目中遗留下来的。那台机器配有皓龙250双核处理器,内存有8 GB。服役了一年之后,那种配置仍然是相当不错的。它还有贴心的升级方案可选:它的泰安Thunder K8W主板最多能支持16GB内存,也能支持最新的皓龙双核处理器。
然后,我们把这台机器配成了虚拟机,让它跑Windows Server 2003 x64。可是,我们碰到了一些诡异的情况:
- 虚拟服务器总是报告一种古怪的出错消息:“这台机器的一些节点没有本地内存。这可能导致虚拟机性能下降。”
- 这台机器时不时会自动重启。
这台服务器我们已经使用了一年多,之前从来没有碰到过这些问题。上述诡异现象是在我们改变它的用途后才开始出现的。
为了解决问题,我们采取的第一招是:将机器的BIOS升级到最新版本,并且确保我们为所有的64位芯片和平台安装了最新的驱动程序。在排除故障的过程中,这一步的成效首屈一指——这相当于给硬件吃了两片阿司匹林(解热镇痛药),并且设置了晨间的叫醒服务。果不其然,“这台机器的一些节点没有本地内存”的错误消失了。然而,纵然我们安装了最新的BIOS和驱动程序,这台机器还是时不时地在半夜重启。
到这时候,我开始怀疑是硬件问题了。排除硬件的稳定性故障可能比较困难。不过,如果用对了工具(比如Memtest86+和Prime95),你也许能事半功倍。
1. 用Memtest86+测试内存的稳定性
之所以用Memtest86+,是因为我们已经怀疑是内存问题了。Memtest86+不是诊断内存问题的唯一工具,但它可能是最出名的。微软也提供了类似的工具,用起来大同小异。Memtest86+在它的官方网站(http://www.memtest.org/#downiso)上有多种形式供用户下载。我们选择了ISO镜像,然后把它刻到一张CD上。用这张CD启动机器,测试随后就自动开始了。
检测完4GB的内存花了大概30~45分钟。在顶部右侧的进度条可以为你指示整个测试将运行多长时间。在一轮标准的测试过程中,总共会进行8次测试。注意了,在首次测试通过之后就会有报告输出!
2. 用Prime95测试CPU的稳定性
在电脑稳定性测试的众多工具中,我对Prime95情有独钟。让Prime95在你的电脑上跑一晚上,如果通不过,那你的机器肯定有硬件问题。(出问题的往往不是CPU本身,通常是与之相关的散热或电力供应设备的故障。)尽管Prime95主要测的是CPU,但它在内存测试方面也相当不错。你可以打开Options(选项)菜单,然后选择Torture Test(耐力测试)。
- 如果你只想测试CPU的稳定性,那就选择“Small FFTs”。
- 如果你想同时测CPU和内存的稳定性,那就选择“Blend”。
如果你的机器是双CPU的(或者有4个CPU),为了测到每个CPU,你必须运行Prime95的多个实例。最简单的方法就是把包含Prime95的文件夹复制多份,然后在各个独立的文件夹中运行Prime95的EXE文件。你可能想通过任务管理设置每个Prime95实例与所测CPU的关系,不过你大可以放心,调度程序会自动把所有CPU安排得妥妥当当。
一点小小的警告:当Prime95提示说“lots of RAM tested”(测试大量内存),他们可没开玩笑哦!我们的服务器只装了4 GB的内存,我们尝试了运行两个Prime95的实例,并且让它们工作在“Blend”(混合)模式下,结果我们差一点把虚拟内存文件撑爆了——两个实例都分配了6 GB的内存!
根据我的经验,如果你的CPU或内存不稳定,Prime95几乎会立即报错而停止工作。这对于故障排除来说是绝佳的,因为你很快就知道了问题的所在。如果你让Prime95在“SmallFFTs”模式下运行一个小时(而不出问题),很可能你的CPU就是没有问题。如果你让它跑一晚上都没事,那么CPU问题绝对可以排除在外。
回来再说说我们那台“任性的”服务器吧。Memtest86+诊断出来是“偶发的、间歇性内存问题”。但我们让Prime95在“Blend”模式下运行时,它总是立刻报错。而如果让Prime95切换到“Small FFTs”模式,即使我们启动两个实例,并让它们运行一个小时,结果还是安然无恙。很明显就是内存问题了!通过组合使用Memtest86+和Prime95,我们最终发现,我们的服务器在安装4 GB内存时非常稳定,而当我们把内存增加到8 GB时,机器就通不过测试了。
考虑到8GB大的内存对于虚拟服务器来说是至关重要的,我们不能通过减少内存来解决问题。直觉告诉我,我应该在BIOS里把内存速度从200MHz降到166 MHz。果然,Prime95和Memtest86+的测试都顺利通过了。
尽管软件是不可靠的(这已经臭名昭著了),但我们不能总是把矛头指向软件。有时候,你面对的确确实实是一个硬件问题。
大多数时候是软件的Bug,但是... 有时候的确是硬件的问题!的更多相关文章
- 软件测试之BUG分析定位概述(QA如何分析定位BUG)
你是否遇到这样的场景? QA发现问题后找到DEV说: 不好了,你的程序出问题了! DEV(追查半小时之后): 唉,是你们测试环境配置的问题 唉,是你们数据不一致 唉,是你们**程序版本不对 唉,是** ...
- 软件测试之BUG分析定位概述(QA如何分析定位BUG)【转自 https://blog.csdn.net/kaka1121/article/details/51538979】
你是否遇到这样的场景? QA发现问题后找到DEV说: 不好了,你的程序出问题了! DEV(追查半小时之后): 唉,是你们测试环境配置的问题 唉,是你们数据不一致 唉,是你们**程序版本不对 唉,是** ...
- 关于Linux Mint下的pluma软件打开txt文本文件有时候乱码的解决办法
解决方法: 1.在终端输入“dconf-editor”回车(见图2).(如果没有安装用“sudo apt-get install dconf-tools”安装.) 图2 2.展开org/gnome/g ...
- BUG克星:几款优秀的BUG跟踪管理软件
Bug管理是指对开发,测试,设计等过程中一系列活动过程中出现的bug问题给予纪录.审查.跟踪.分配.修改.验证.关闭.整理.分析.汇总以及删除等一系列活动状态的管理.,最后出相应图表统计,email通 ...
- 历史上的重大软件BUG启示录第9篇---微软的硬件尝试
(图片来源于网络) 2001年苹果公司发布第一代iPod,它的推出在当时引起了轰动,它拥有大容量存储空间和全新的操作方式,并且还非常漂亮(在当时看来),因此在市场上大受欢迎,苹果公司也因此赚的盆满钵满 ...
- 发现护考上机考试的一个bug:附软件截图(模拟软件)
目录: 一.文章主旨 二.问题发现的起因 三.bug(问题)描述 四.软件截图 五.我的思考 六.一点期盼 一.文章主旨: 2019年5月18.19.20日,又是一年一度的护资考试(上机考),考试前夕 ...
- FastDFS并发会有bug,其实我也不太信?- 一次并发问题的排查经历
前一段时间,业务部门同事反馈在一次生产服务器升级之后,POS消费上传小票业务偶现异常,上传小票业务有重试机制,有些重试三次也不会成功,他们排查了一下没有找到原因,希望架构部帮忙解决. 公司使用的是Fa ...
- 修改BUG心得
修改BUG心得 分类: 项目管理/CMMI2013-01-14 22:06 845人阅读 评论(0) 收藏 举报 目录(?)[-] 一 二 三 一. 1.写第一版时就杜绝这些的发生. 2.思维要开 ...
- 为什么程序员老在改 Bug,就不能一次改好吗?
程序员的日常三件事:写Bug.改Bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含Bug. 但是真的有这么多Bug要改吗?就不能一次改完吗? 程序员听这问题后要拍键盘了,还!真! ...
随机推荐
- 基于Windows服务器,从0开始搭建一个基于RTSP协议的直播平台
作案工具下载 EasyDarwin 服务端程序,用来接受推流和拉流 FFmpeg 可以用来推流视频数据到服务端,也可以从服务端拉流下来播放,也可以从一个服务端拉流下来,转推到另一个服务端去. Easy ...
- Django Views(视图函数)
http请求中产生两个核心对象: http请求:HttpRequest对象 http响应:HttpResponse对象 所在位置:django.http 之前我们用到的参数request就是HttpR ...
- Java中使用long类型实现精确的四则运算
引子 Effective Java 2nd Edition 第48条建议:如果需要精确的答案,请避免使用float和doble.float和double类型主要是为了科学计算和工程计算而设计的.他们执 ...
- MyEclipse中查看struts_spring_hibernate源码
1.spring查看源码 首先下载对应的源码包 如:spring-framework-2.5.6-with-dependencies.zip 打开spring-framework-2.5.6\di ...
- Programming In Scala笔记-第五章、Scala中的变量类型和操作
这一章的一些基础性的东西,主要包括Scala中的基本变量类型,以及相关的一些操作符. 一.简单类型 下表中列出Scala语言中的基本类型,以及其字节长度,其中Byte, Short, Int, Lon ...
- Android开发之手把手教你写ButterKnife框架(一)
欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52662376 本文出自:[余志强的博客] 一.概述 JakeWhar ...
- ObjectOutputStream 和 ObjectInputStream的使用
一.看一下API文档 ObjectOutputStream : ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream.可以使用 ObjectInp ...
- 值集&快速编码(Lookup_code)
--值集 SELECT ffv.flex_value, ffv.description FROM fnd_flex_values_vl ffv, fnd_flex_value_sets ffs ...
- JSP简单隔行变色和日期格式化
以前好像在找,都没找到简单点的,所以后面就自己写了一个,感觉超级简单又好理解,分享给大家 <%@ page language="java" import="java ...
- Gazebo機器人仿真學習探索筆記(二)基本使用說明
在完成Gazebo7安裝後,需要熟悉Gazebo,方便之後使用. 部分源代碼可以參考:https://bitbucket.org/osrf/gazebo/src/ 如果還沒有安裝請參考之前內容完成安裝 ...