由于新上架的一台服务器不停的宕机,昨晚连续无故宕机了4次,就跑了一个项目,压力并不大,cpu和内存都有空闲,查看message和dmesg也没发现什么问题,只能把上面的业务都转移了,然后让机房测试硬件是否有问题,自己也找了些linux硬件检测工具来测试,如下:
Linux下的硬件检测和识别软件,做得比较完善了。选购Laptop,如果是自带Linux系统,完全可以用它们来检测硬件。
首先出场的当然是:
1. dmidecode www.nongnu.org/dmidecode/
检测SMBIOS/DMI的信息,实际上按SMBIOS手册上的每一条,都dump出来,包括主板芯片,CPU标识,内存大小,硬盘信息等。
这个程序被很多项目吸取,包括lshw等。
还记得Win32下的CPU-Z软件么,它与上面的dmidecode相比,多了SPD信息获取的功能。别急,Linux下也有,它就是──
2. decode-dimms http://ornellas.apanela.com/dokuwiki/pub:spd
依赖
提供的eeprom驱动模块,在内核2.6.5以上的内核,源码在drivers/i2c/chips/eeprom.c 文件中。
#modprobe eeprom
decode-dimms实际是个perl脚本,包含在
内的文件包中。
我的Laptop上运行
3.lshw lspic lsusb工具
4.smartmontools 验证Laptop是否全新,有一个重要依据──硬盘的上电时间。Linux下也有探测工具,就如HD Tune的最有用功能。它就是──smartmontools
#./smartctl –all /dev/sda
5. 还想要Nokia测试屏幕坏点、亮点的工具?有!
screentest http://www.fi.muni.cz/~kas/screentest/
功能类似,图像化界面。
6.Linux 下检测磁盘性能的命令是hdparm.
#sudo hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 2052 MB in 2.00 seconds = 1025.99 MB/sec
Timing buffered disk reads: 262 MB in 3.02 seconds = 86.77 MB/sec
#sudo hdparm -Tt /dev/sdb
/dev/sdb:
Timing cached reads: 1808 MB in 2.00 seconds = 903.91 MB/sec
Timing buffered disk reads: 308 MB in 3.00 seconds = 102.57 MB/sec
7.Super π(Pi)是Windows底下很受欢迎的测试CPU的工具,因其只用到基础的浮点运算,而不涉及其他的系统库环境,所以,很适合用于排查CPU物理问题。而基于Linux环境,同样也有Super PI for linux套件。
一、下载
ftp://pi.super-computing.org/Linux/super_pi.tar.gz
或者
http://www.dbasky.net/tool/superpi_linux.tar.gz
二、安装/运行
解压后,运行即可:
[root@localhost superpi]#tar xvf superpi_linux.tar.gz
[root@localhost superpi]# cd superpi
[root@localhost superpi]# ./super_pi 20
Version 2.0 of the super_pi for Linux OS
Fortran source program was translated into C program with version 19981204 of
f2c, then generated C source program was optimized manually.
pgcc 3.2-3 with compile option of “-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant” was used for the
compilation.
—— Started super_pi run : Sun Nov 29 14:57:04 EST 2009
Start of PI calculation up to 1048576 decimal digits
End of initialization. Time= 0.378 Sec.
I= 1 L= 0 Time= 1.136 Sec.
I= 2 L= 0 Time= 1.292 Sec.
I= 3 L= 1 Time= 1.290 Sec.
I= 4 L= 2 Time= 1.293 Sec.
I= 5 L= 5 Time= 1.291 Sec.
I= 6 L= 10 Time= 1.289 Sec.
I= 7 L= 21 Time= 1.293 Sec.
I= 8 L= 43 Time= 1.295 Sec.
I= 9 L= 87 Time= 1.290 Sec.
I=10 L= 174 Time= 1.292 Sec.
I=11 L= 349 Time= 1.291 Sec.
I=12 L= 698 Time= 1.291 Sec.
I=13 L= 1396 Time= 1.291 Sec.
I=14 L= 2794 Time= 1.286 Sec.
I=15 L= 5588 Time= 1.286 Sec.
I=16 L= 11176 Time= 1.279 Sec.
I=17 L= 22353 Time= 1.256 Sec.
I=18 L= 44707 Time= 1.221 Sec.
I=19 L= 89415 Time= 1.143 Sec.
End of main loop
End of calculation. Time= 25.478 Sec.
End of data output. Time= 0.134 Sec.
Total calculation(I/O) time= 25.612( 1.024) Sec.
—— Ended super_pi run : Sun Nov 29 14:57:30 EST 2009
※说明
1、命令运行中使用的参数m,是指位数,表示要算2的多少次方位,如通常要算小数点后1M位(2^20次方);
2、m最大到25次方,若设置再大的值,会自动缩小到该值
Specified M(=30) is too large. M is set to 25.
Start of PI calculation up to 33554432 decimal digits
3、因算法不同,该程序不能用于和Windows平台上的Super PI进行性能对比(实际上,快很多);
4、该程序在SMP环境中,只能让CPU满载运行,所以,对于多CPU的环境,可同时用多个程序并发运行。
查看CPU信息
cat /proc/cpuinfo
8、 内存测试工具
下载最新版 http://pyropus.ca/software/memtester/
tar zxf …. && cd xxxx
make all
#memtester [run-times]
例:
[root@localhost ]#tar zxvf memtester-4.1.2.tar.gz
[root@localhost ]#cd memtester-4.1.2
[root@localhost memtester-4.1.2]# ./memtester 512M 2
512表示测试的内存大小,单位是M,2表示次数。
如果1024不接受的,把它缩小就可以了。先运行一次,如果没有问题就把次数增加即可。
监控:vmstat、top都可以看到。
查看内存信息
# cat /proc/meminfo
# dmidecode -t memory
9、Iozone linux下I/O性能测试
一. 安装
1.安装gnuplot
找到安装盘中gnuplot-4.0.0-20.2.i586.rpm ,并安装
或直接到主页http://www.gnuplot.info/
(如果不安装,执行Generate_Graphs时会出现./Generate_Graphs: line 30: gnuplot: command not found报错)
2.安装iozone
到http://www.iozone.org/下载最新版
cd /zhangjianfeng/tools/ && wget http://www.iozone.org/src/current/iozone3_308.tar
tar xf iozone3_308.tar && cd iozone3_308/src/current/
make linux (32位) 或 make linux-ia64 (64位),更详细参数请直接在当前目录运行make
或直接rpm包并安装即可,安装后路径/opt/iozone/
二. 使用
测试格式为-i #,比如测试写:-i 0,测试读和写:-i 0 -i 1。
-R 产生excel格式的输出(仅显示在屏幕上,不会产生excel文件)
-b 产生excel格式的文件
-g 最大测试文件大小 for auto mode
-t 并发数
-s 测试文件的大小,支持-k -m -g
-q 块大小 for auto mode
-r 文件块大小。
-a 在希望的文件系统上测试,不过只有-a的话会进行全面测试,要花费很长时间,最好用-i指定测试范围。
-n 指定最小测试文件大小。
-f 指定测试文件。
-C 显示每个节点的吞吐量。
-c 测试包括文件的关闭时间
用tee命令生成log信息。
./iozone -Raz -b lab-2G.xls -g 2G |tee 2G.log
./iozone -i 0 -i 1 -Rab ~/test-iozone.xls -g 4M -n 1M -C
#以下测试都可以加-Rb产生xls文件
iozone的确是一款不错的文件系统性能测试工具,可以就文件系统的很多方面作自动测试。地址:www.iozone.org
用法:
在希望进行测试的文件系统上运行:
/opt/iozone/bin/iozone -a
即可进行全面的自动测试,不过通常需要很长的时间,要耐心等待。
/opt/iozone/bin/iozone -a -i 1
只对write, rewrite进行性能测试
/opt/iozone/bin/iozone -a -i 1 -i 0
对读写进行性能测试
/opt/iozone/bin/iozone -a -g 1G -i 0 -i 1
对读写进行性能测试,并且最大测试文件为1G
/opt/iozone/bin/iozone -Ra
测试所有方面,并且生成excel文件
上面的命令在执行时,最好通过重定向保存到另外一个文件中.
/opt/iozone/bin/iozone –Rab output.wks
测试小文件
/opt/iozone/bin/iozone -a -s 512m -y 1k -q 8k -b minfile_result.xls
测试普通文件
如果2G内存测试,时间太长,先在grub.conf里把内存变成256m,这时使用512m的文件测试,就不会使用缓存了。
可以保证测试的准确性
/opt/iozone/bin/iozone -a -s 512m -y 8k -q 512k -b comfile_result.xls
测试大文件
/opt/iozone/bin/iozone -a -s 512m -y 1024k -q 10240k -i 0 -i 1 -i 2 -b largefile_result.xls
测试-i命令的使用
/opt/iozone/bin/iozone -Rab output.wks -g 1G -i 0 -i 1 -i 2 -i 8
-R 创建 Excel 报告
-g 设置自动模式下最大文件大小
Set maximum file size (in Kbytes) for auto mode.
-s 指定文件大小
-s 512k or -s 512M or -s 1G
-f filename
指定临时文件
-F filename filename filename
指定临时文件组
-t #
线程数
-q 指定最大记录大小
-q 512K or -q 512M or -q 1g
-y 指定最小记录大小
-y 512K or -q 512M or -q 1g
-U mountpoint
Mount point to unmount and remount between tests. Iozone will unmount and remount
this mount point before beginning each test. This guarantees that the buffer cache does not
contain any of the file under test.
通常情况下,测试的文件大小要求至少是系统cache的两倍以上,这样,测试的结果才是真是可信的。如果小于cache的两倍,文件的读写测试读写的将是cache的速度,测试的结果大打折扣
附:
-i 参数
0=write/rewrite
1=read/re-read
2=random-read/write
3=Read-backwards
4=Re-write-record
5=stride-read
6=fwrite/re-fwrite
7=fread/Re-fread,
8=random mix
9=pwrite/Re-pwrite
10=pread/Re-pread
11=pwritev/Re-pwritev,
12=preadv/Re-preadv
版权属于:
运维之道
转载时必须以链接形式注明原始出处及本声明。