阿里云限购云服务器性能测评UnixBench
通常,在我们需要采购新设备、或者准备升级设备的时候,总是希望对设备进行一系列的性能评估,除了直接看硬件参数,比较理性、简单的方法就是能有一个测试软件来为我们的硬件系统平台打个分,然后我们就可以根据这个数量化的结果来进行决策。这种方式对于个人或者一些小团队而言,更显得方便而又重要,因为个人和小团队都不太可能找设备供应商拿到足够的售前支持,或者去做专业的评估,而这种“跑个分”的方式不失为是一种既省成本又有效的办法。
本次使用UnixBench测评,评测阿里云服务器配置:2核2G,3M带宽,40G硬盘。
unixbench概述
UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。
unixbench是一个用于测试unix系统性能的工具,也是一个比较通用的benchmark, 此测试的目的是对类Unix 系统提供一个基本的性能指示,很多测试用于系统性能的不同方面,这些测试的结果是一个指数值(index value,如520),这个值是测试系统的测试结果与一个基线系统测试结果比较得到的指数值,这样比原始值更容易得到参考价值,测试集合里面所有的测试得到的指数值结合起来得到整个系统的指数值。
各项的测试有得分,然后有一个综合的得分,这样可以很方便的通过分数去比较。
源于1995 年,基线系统是“George”,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。
UnixBench也包含一些非常简单的2D和3D图形测试。
UnixBench也支持多CPU系统的测试,默认的行为是测试两次,第一次是一个进程的测试,第二次是N份测试,N等于CPU个数。这样的设计是为了以下目标:
测试系统的单任务性能
测试系统的多任务性能
测试系统并行处理的能力
UnixBench一个基于系统的基准测试工具,不单纯是CPU 内存 或者磁盘测试工具。测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器。
UnixBench 的安装
直接下载运行
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh chmod +x unixbench.sh ./unixbench.sh
自定义文件运行
如果下载不了,复制下面的脚本代码,保存到unixbench.sh文件,文件赋予执行权限(chmod +x unixbench.sh
),然后执行脚本./unixbench.sh
#! /bin/bash #==============================================================# # Description: Unixbench script # # Author: Teddysun # # 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 https://dl.lamp.sh/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
测试结果
测试项目
Dhrystone测试
测试聚焦在字符串处理,没有浮点运算操作。这个测试用于测试链接器编译、代码优化、内存缓存、等待状态、整数数据类型等,硬件和软件设计都会非常大的影响测试结果。
Whetstone 测试
这项测试项目用于测试浮点运算效率和速度。这项测试项目包含若干个科学计算的典型性能模块,包含大量的C语言函数,sin cos sqrt exp和日志以及使用整数和浮点的数学操作。包含数组访问、条件分支和过程调用。
Execl Throughput
(execl 吞吐,这里的execl是类unix系统非常重要的函数,非办公软件的execl)测试
这项测试测试每秒execl函数调用次数。execl是 exec函数家族的一部分,使用新的图形处理代替当前的图形处理。有许多命令和前端的execve()函数命令非常相似。
File Copy测试
这项测试衡量文件数据从一个文件被传输到另外一个,使用大量的缓存。包括文件的读、写、复制测试,测试指标是一定时间内(默认是10秒)被重写、读、复制的字符数量。
Pipe Throughput(管道吞吐)测试
pipe是简单的进程之间的通讯。管道吞吐测试是测试在一秒钟一个进程写512比特到一个管道中并且读回来的次数。管道吞吐测试和实际编程有差距。
Pipe-based Context Switching (基于管道的上下文交互)测试
这项测试衡量两个进程通过管道交换和整数倍的增加吞吐的次数。基于管道的上下文切换和真实程序很类似。测试程序产生一个双向管道通讯的子线程。
Process Creation(进程创建)测试
这项测试衡量一个进程能产生子线程并且立即退出的次数。新进程真的创建进程阻塞和内存占用,所以测试程序直接使用内存带宽。这项测试用于典型的比较大量的操作系统进程创建操作。
Shell Scripts测试
shell脚本测试用于衡量在一分钟内,一个进程可以启动并停止shell脚本的次数,通常会测试1,2, 3, 4, 8 个shell脚本的共同拷贝,shell脚本是一套转化数据文件的脚本。
System Call Overhead (系统调用消耗)测试
这项测试衡量进入和离开系统内核的消耗,例如,系统调用的消耗。程序简单重复的执行getpid调用(返回调用的进程id)。消耗的指标是调用进入和离开内核的执行时间。
Graphical Tests(图形)测试
由”ubgears”程序组成,测试非常粗的2D和3D图形性能,尤其是3D测试非常有限。测试结果和硬件,系统合适的驱动关系很大。
测试项目 | 项目说明 | 基准线 |
---|---|---|
Dhrystone 2 using register variables | 测试 string handling | 116700.0lps |
Double-Precision Whetstone | 测试浮点数操作的速度和效率 | 55.0MWIPS |
Execl Throughput | 此测试考察每秒钟可以执行的 execl 系统调用的次数 | 43.0lps |
File Copy 1024 bufsize 2000 maxblocks | 测试从一个文件向另外一个文件传输数据的速率 | 3960.0KBps |
File Copy 256 bufsize 500 maxblocks | 测试从一个文件向另外一个文件传输数据的速率。 | 1655.0KBps |
File Read 4096 bufsize 8000 maxblocks | 测试从一个文件向另外一个文件传输数据的速率。 | 5800.0KBps |
Pipe-based Context Switching | 测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数 | 12440.0lps |
Pipe Throughput | 一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数 | 4000.0lps |
Process Creation | 测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。 | 126.0lps |
Shell Scripts (8 concurrent) | 测试一秒钟内一个进程可以并发地开始一个shell 脚本的 n 个拷贝的次数,n 一般取值1,2,4,8. | 42.4lpm |
System Call Overhead | 测试进入和离开操作系统内核的代价,即一次系统调用的代价。 | 6.0lpm |
评估
以上的测试给出的分数,我们可以作为评估的依据,但实际决策中,还需要考虑其他的情况。如服务器的安放、稳定性以及一起其他的功能,比如 Dell 的服务器支持 iDrac 远程控制,可以通过网络控制服务器开关、重启以及监控设备运行情况等。如果单从运算性能看,可能会组装一台 i5 的电脑性能更好,但如遇停电、或者死机的情况,没有远程控制维护服务器,那么就需要考虑其他的处理方案。
小结
本篇文章介绍了如何安装及使用 UnixBench,以及简单介绍了如何以一种比较低成本的方式来评估设备情况,希望能对大家有所帮助。
本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhuji.jb51.net/ceping/8615.html