折腾VPS的人总是会纠结一下自己的VPS性能怎么样,除了查看下VPS的系统信息之外,我们也会通过跑分软件来测试,比如使用Linux性能测试UnixBench跑分来测试。
UnixBench 是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具.。UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器.。测试系统各个方面一系列的性能,然后将每个测试结果和一个基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值.
UNIXBENCH也是linux、unix测试系统基准性能的经典工具,UNIXBENCH测试包含了系统调用、读写、进程、2D、3D、管道、运算、C库等系统基准性能,它的优点在于提供了对系统性能的一种评价体系,为系统评分,如此方便对系统作对比测试;但UNIXBENCH在网络性能测试欠缺。
国内源:可以使用wget获取或者直接下载
网易:
Centos5: http://mirrors.163.com/.help/CentOS5-Base-163.repo
Centos6: http://mirrors.163.com/.help/CentOS6-Base-163.repo
Centos7: http://mirrors.163.com/.help/CentOS7-Base-163.repo
中科大的yum源:
Centos5: https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=1
Centos6: https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=2
Centos7: https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
sohu的yum源:
http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
进入yum源配置目录
【cd /etc/yum.repos.d/】
下载yum源,以下载163的yum为例
【wget http://mirrors.163.com/.help/CentOS6-Base-163.repo】
下载后,将yum源配置目录下其他yum源设为不可用
【mv CentOS-Media.repo CentOS-Media.repo.bak】
接下来就可以正常使用了,
今天有在阿里云服务器跑分的时候出现"Can't locate Time/HiRes.pm in @INC"错误提示无法进行,检测是出现缺少perl Time HiRes组件造成的,并不是所有的UnixBench跑分的时候都会遇到这样的问题。
更新组件
【yum -y install perl-Time-HiRes】
下载UnixBench unixbench-5.1.2.tar.gz
安装:
unixbench5包含system和graphic测试,如果你需要测试graphic,则需要修改Makefile,不要注释掉"GRAPHIC_TESTS = defined,同时需要系统提供x11perf命令gl_glibs库。进入源包,执行【make】
使用:
执行system测试方法:Run
◆ 执行graphic测试方法:Run graphics
◆ 执行system,graphics测试方法:Run gindex
对于多cpu系统的性能测试策略,需要统计单任务,多任务及其并行的性能增强。
以4个cpu的PC为例,需要测试两次,4个CPU就是要并行执行4个copies,
【Run -c 1 -c 4】表示执行两次,第一次单个copies,第二次4个copies的测试任务。
结果分析
【System Benchmarks Index Score 171.3】
【System Benchmarks Index Score 395.7】
从上面的测试结果可以看出,但个并行的任务的得分为171.3,4个并行任务的得分为395.7。对比测试时需要关注这个值。
wget --no-check-certificate https:/ /github.com/teddysun /across/raw /master/unixbench.sh chmod +x unixbench.sh ./unixbench.sh
#! /bin/bash #==============================================================# # Description: Unixbench script # # Author: Teddysun <i@teddysun.com> # # Intro: https://teddysun.com/245.html # #==============================================================# cur_dir=/opt/unixbench # Check System [[ $EUID -ne 0 ]] && echo 'Error: This script must be run as root!' && exit 1 [[ -f /etc/redhat-release ]] && os= 'centos' [[ ! -z "`egrep -i debian /etc/issue`" ]] && os= 'debian' [[ ! -z "`egrep -i ubuntu /etc/issue`" ]] && os= 'ubuntu' [[ "$os" == '' ]] && echo 'Error: Your system is not supported to run it!' && exit 1 # Install necessary libaries if [ "$os" == 'centos' ]; then yum -y install make automake gcc autoconf gcc-c++ time perl-Time-HiRes else apt-get -y update apt-get -y install make automake gcc autoconf time perl fi # Create new soft download dir mkdir -p ${cur_dir} cd ${cur_dir} # Download UnixBench5.1.3 if [ -s UnixBench5.1.3.tgz ]; then echo "UnixBench5.1.3.tgz [found]" else echo "UnixBench5.1.3.tgz not found!!!download now..." if ! wget -c http://dl.teddysun.com/files/UnixBench5.1.3.tgz; then echo "Failed to download UnixBench5.1.3.tgz, please download it to ${cur_dir} directory manually and try again." exit 1 fi fi tar -zxvf UnixBench5.1.3.tgz && rm -f UnixBench5.1.3.tgz cd UnixBench/ #Run unixbench make ./Run echo echo echo "======= Script description and score comparison completed! ======= " echo echo
Run用法
Run [ -q | -v ] [-i <n> ] [-c <n> [-c <n> ...]] [test ...]
选项说明:
-q 不显示测试过程
-v 显示测试过程
-i <count> 执行次数,最低3次,默认10
-c <n> 每次测试并行n个copies(并行任务)
备注:-c选项可以用来执行多次,如: Run -c 1 -c 4表示执行两次,第一次单个copies,第二次4个copies的测试任务。
test:
arithmetic Runs arithoh, short, int, long, float, double, and whetstone- double dhry Alias for dhry2reg dhrystone Alias for dhry2reg whets Alias for whetstone- double whetstone Alias for whetstone- double load Runs shell1, shell8, and shell16 misc Runs C, dc, and hanoi speed Runs the arithmetic and system groups oldsystem Runs execl, fstime, fsbuffer, fsdisk, pipe, context1, spawn, and syscall system Runs oldsystem plus shell1, shell8, and shell16 fs Runs fstime-w, fstime-r, fstime, fsbuffer-w, fsbuffer-r, fsbuffer, fsdisk-w, fsdisk-r, and fsdisk shell Runs shell1, shell8, and shell16 index Runs the tests which constitute the official index: the oldsystem group, plus dhry2reg, whetstone- double, shell1, and shell8 See "The BYTE Index" below for more information. graphics Runs the tests which constitute the graphics index: 2d-rects, 2d-ellipse, 2d-aashapes, 2d- text, 2d-blit, 2d-window, and ubgears gindex Runs the index and graphics groups, to generate both sets of index results all Runs all tests