在我们性能最好的服务器中,有一台是从之前的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,但是... 有时候的确是硬件的问题!的更多相关文章

  1. 软件测试之BUG分析定位概述(QA如何分析定位BUG)

    你是否遇到这样的场景? QA发现问题后找到DEV说: 不好了,你的程序出问题了! DEV(追查半小时之后): 唉,是你们测试环境配置的问题 唉,是你们数据不一致 唉,是你们**程序版本不对 唉,是** ...

  2. 软件测试之BUG分析定位概述(QA如何分析定位BUG)【转自 https://blog.csdn.net/kaka1121/article/details/51538979】

    你是否遇到这样的场景? QA发现问题后找到DEV说: 不好了,你的程序出问题了! DEV(追查半小时之后): 唉,是你们测试环境配置的问题 唉,是你们数据不一致 唉,是你们**程序版本不对 唉,是** ...

  3. 关于Linux Mint下的pluma软件打开txt文本文件有时候乱码的解决办法

    解决方法: 1.在终端输入“dconf-editor”回车(见图2).(如果没有安装用“sudo apt-get install dconf-tools”安装.) 图2 2.展开org/gnome/g ...

  4. BUG克星:几款优秀的BUG跟踪管理软件

    Bug管理是指对开发,测试,设计等过程中一系列活动过程中出现的bug问题给予纪录.审查.跟踪.分配.修改.验证.关闭.整理.分析.汇总以及删除等一系列活动状态的管理.,最后出相应图表统计,email通 ...

  5. 历史上的重大软件BUG启示录第9篇---微软的硬件尝试

    (图片来源于网络) 2001年苹果公司发布第一代iPod,它的推出在当时引起了轰动,它拥有大容量存储空间和全新的操作方式,并且还非常漂亮(在当时看来),因此在市场上大受欢迎,苹果公司也因此赚的盆满钵满 ...

  6. 发现护考上机考试的一个bug:附软件截图(模拟软件)

    目录: 一.文章主旨 二.问题发现的起因 三.bug(问题)描述 四.软件截图 五.我的思考 六.一点期盼 一.文章主旨: 2019年5月18.19.20日,又是一年一度的护资考试(上机考),考试前夕 ...

  7. FastDFS并发会有bug,其实我也不太信?- 一次并发问题的排查经历

    前一段时间,业务部门同事反馈在一次生产服务器升级之后,POS消费上传小票业务偶现异常,上传小票业务有重试机制,有些重试三次也不会成功,他们排查了一下没有找到原因,希望架构部帮忙解决. 公司使用的是Fa ...

  8. 修改BUG心得

      修改BUG心得 分类: 项目管理/CMMI2013-01-14 22:06 845人阅读 评论(0) 收藏 举报 目录(?)[-] 一 二 三 一. 1.写第一版时就杜绝这些的发生. 2.思维要开 ...

  9. 为什么程序员老在改 Bug,就不能一次改好吗?

    程序员的日常三件事:写Bug.改Bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含Bug. 但是真的有这么多Bug要改吗?就不能一次改完吗? 程序员听这问题后要拍键盘了,还!真! ...

随机推荐

  1. 使用POI实现报表打印功能

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/53393453 作者:朱培 ID:sdksdk0 这 ...

  2. pandas小记:pandas高级功能

    http://blog.csdn.net/pipisorry/article/details/53486777 pandas高级功能:面板数据.字符串方法.分类.可视化. 面板数据 {pandas数据 ...

  3. Spark-SQL之DataFrame操作大全

    Spark SQL中的DataFrame类似于一张关系型数据表.在关系型数据库中对单表或进行的查询操作,在DataFrame中都可以通过调用其API接口来实现.可以参考,Scala提供的DataFra ...

  4. Ubuntu LTS 系统学习使用体会和实用工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04

    Ubuntu LTS 系统学习体会和工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04 ubuntu入门必备pdf:http://download.csdn.net/de ...

  5. premake设置静态运行库

    premake设置静态运行库(金庆的专栏)链接protobuf库时,碰到RuntimeLibrary不匹配:1>libprotobufd.lib(int128.obj) : error LNK2 ...

  6. [ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel

    继上次使用js前端导出excel之后,还有一个主要大家比较关注的是后台实现导出excel,因为本人开发使用的java所以这里使用apache的开源项目poi进行后台excel的导出. 本文目录 本文目 ...

  7. Leetcode解题-树(5.0.0)基础类

    与第二章类似,LeetCode指定了TreeNode实现.为了方便后续习题的编写和测试,创建一个基础父类,包含TreeNode实现,以及create()和print()创建和打印树的方法.其中crea ...

  8. Xcode中使用数据(硬件)断点调试

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Xcode的GUI界面中只能添加软断点,而无法增加硬断点.但 ...

  9. MacOS的菜单状态栏App添加饼型进度

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/52075418 ...

  10. (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 通用的星星类已经完成了,下面我们来实现具体的变长和缩短道具. 变 ...