集群的可靠性测试
时间:2006-04-20 来源:gridpc
本文主要讲述一下内存和cpu的可靠性测试的方法。
一、内存测试
内存测试的工具有很多,现在使用的比较多的是memtester,可以到http://www.qcc.ca/~charlesc/software/memtester/ 下载最新的版本。 Memtester主要是捕获内存错误和一直处于很高或者很低的坏位,其测试的主要项目有:随机值、异或比较、减法、乘法、除法、与或运算等等。通过给定测试内存的大小和次数,可以对系统现有的内存进行上面项目的测试。
具体的测试步骤如下:
<!--[if !supportLists]-->1. <!--[endif]-->在http://www.qcc.ca/~charlesc/software/memtester/下载memtester的安装包memtester-4.0.4.tar
<!--[if !supportLists]-->2. <!--[endif]-->解开tar包
#tar –xvf memtester-4.0.4.tar –C /tmp
3.编译memtester源码
# cd memtester-4.0.4
# make all
这样,在当前的目录下会生成memtester的可执行文件。
Memtester的参数有两个:
#./memtester ram-size [runs]
ram-size:是指定要测试的内存的大小,单位是MB。
runs:是要测试测次数。
4.在集群的部署及其测试
如果集群有很多节点,逐个进行测试比较费时,通过对所有的节点分发memtester软件,同步进行测试,可以达到事半功倍的效果。
<!--[if !supportLists]-->A. <!--[endif]-->分发memtester到所有节点
# cp /tmp/memtester-4.0.4/memtester /tmp
使用下面的脚本fengfa.sh分发到所有的节点,假设现在有64个节点,ip地址的范围是从192.168.130.1到192.168.130.64。
#!/bin/sh
for((i=2;i<=64;i++))
do
rcp /tmp/memtest 192.168.130.$i:/tmp/
done
这样在所有的节点的/tmp目录下就会有memtester文件。
<!--[if !supportLists]-->B. <!--[endif]-->并发测试
使用test.sh 脚本并发的测试系统的内存
#!/bin/sh
#其中$1代表是测试内存的大小,单位是MB。
for((i=1;i<=64;i++))
do
rsh 192.168.130.$i "/tmp/memtester $1 > /tmp/memtest.log"&
done
如果没有指定测试的次数,那么测试会一直进行,直到用户终止。测试完成后在/tmp下会产生memtest.log文件,可以查看这个文件对系统内存的测试结果进行分析。
二、cpu测试
常见的内存测试工具有SETI@home、CPU Burn、CPU Burn-in,测试的原理大致都是在提高cpu的温度和主频的情况下测试,其中以CPU Burn-in的测试最为简单。
具体的测试步骤如下:
<!--[if !supportLists]-->1. <!--[endif]-->在 http://users.bigpond.net.au/cpuburn/下载cpuburn-in.tar
<!--[if !supportLists]-->2. <!--[endif]-->解开tar包
#tar –xvf cpuburn-in.tar –C /tmp
<!--[if !supportLists]-->3. <!--[endif]-->测试
cpuburn-in的测试很简单,只要给出测试时间,系统就会一直测试。
# cpuburn-in times
times:测试的时间,以分钟计。
4.在集群的部署及其测试
<!--[if !supportLists]-->A. <!--[endif]-->使用脚本cpu.sh分发cpuburn-in到所有的节点。
#!/bin/sh
for((i=2;i<=64;i++))
do
rcp /tmp/cpuburn-in 192.168.130.$i:/tmp/
done
<!--[if !supportLists]-->B. <!--[endif]-->使用脚本cputest.sh测试所有节点的cpu。
#!/bin/sh
#其中$1代表是测试时间的长短,单位是分钟。
for((i=1;i<=64;i++))
do
rsh 192.168.130.$i "/tmp/cpuburn-in $1 >/tmp/cpulog"&
done
测试完成后,系统产生/tmp/cpulog日志文件。可以使用脚本view.sh查看cpu是否出错。
#!/bin/sh
for((i=1;i<=640;i++))
do
rsh 192.168.130.$i hostname
rsh 192.168.130.$i “grep –i fail /tmp/cpulog”
done
<!--[if !supportEmptyParas]--> <!--[endif]-->