大多数时候是软件的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要改吗?就不能一次改完吗? 程序员听这问题后要拍键盘了,还!真! ...
随机推荐
- 如何搭建ssh服务?
为了日后便于查询,本文所涉及到的所有命令集合如下: rpm -qa | grep openssh #查看是否安装了openssh软件 service sshd status #服务端的ssh状态 if ...
- jQuery 捕获
jQuery 拥有可操作 HTML 元素和属性的强大方法. jQuery DOM 操作 jQuery 中非常重要的部分,就是操作 DOM 的能力. jQuery 提供一系列与 DOM 相关的方法,这使 ...
- MongoDB 高级索引
考虑以下文档集合(users ): { "address": { "city": "Los Angeles", "state&qu ...
- Python3 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...
- Android开发学习之路--基于vitamio的视频播放器(二)
终于把该忙的事情都忙得差不多了,接下来又可以开始good good study,day day up了.在Android开发学习之路–基于vitamio的视频播放器(一)中,主要讲了播放器的界面的 ...
- Mongo DB 初识
前言 2016年伊始,开始研究NoSql.看了couchdb,cloudant,cassandra,redis.却一直没有看过排行榜第一的mongo,实属不该.近期会花时间研究下mongo.本文是初识 ...
- Android图表库MPAndroidChart(八)——饼状图的扩展:折线饼状图
Android图表库MPAndroidChart(八)--饼状图的扩展:折线饼状图 我们接着上文,饼状图的扩展,增加折现的说明,来看下我们要实现的效果 因为之前对MPAndroidChart的熟悉,所 ...
- RxJava(三) flatMap操作符用法详解
欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/51532776 本文出自:[余志强的博客] flatMap操作符的作用 ...
- Linux & Windows 计时函数
直接上代码: #if defined(_WIN32) && defined(_MSC_VER) #include <windows.h> double abtic() { ...
- SSO 基于CAS实现单点登录 实例解析(二)
本文目录: 概述 演示环境 部署CAS-Server相关的Tomcat 部署CAS-Client相关的Tomcat 测试验证SSO 第一: 本demo在一个机器上实现(三个虚拟主机),来看SSO单点登 ...