虽然,笔者个人在选择VPS、服务器的时候比较推崇直接项目感知测试,包括服务器的稳定性、商家产品的价格和服务,当然也包括网友用户之间的口碑。毕竟任何服务器即便配置再高,如果使用的不是很好,用户体验给人的感觉不是很好,再牛的配置也无用。
其次,个人在闲暇之余可能还会借助一些第三方软件、工具进行VPS、服务器之间的横向数据评测,这样从实际的参数上再对比之间的差异。对于一般用户而言,我们也没有必要使用工具检测,因为大部分工具我们都搞不明白其中的原理,即便是用到UnixBench跑分看到的数据也并不是真实,比如很多超售的OpenVZ跑分奇高无比,但实际上稳定性并不是很好。
在这篇文章中,笔者就将整理在Linux VPS、服务器常用的性能测试工具-UnixBench跑分测试。UnixBench只能在某种程度上测试当前这个服务器的性能,并不能100%的判断商家机器的实际数据,可以说一个参考价值,就好比我们买的手机不要光看跑分。
这几篇关于VPS、服务器相关的工具资源可能你也需要看看:
1、魔门云CDN安装与使用教程 - 免费香港节点且支持HTTPS SSL证书
2、又拍云加速存储联盟注册免费每月赠送10GB存储空间和15GB流量
3、8款国内Linux Web一键安装包/面板介绍及安装方法
第一、安装必要的组件支持
yum -y install gcc automake autoconf libtool make perl-Time-HiRes perl
这里在我们准备下载和安装UnixBench之前,需要准备一些支持的软件。(上面是CentOS系统,如果是Debian/Ubuntu将yum换成apt-get)
第二、UnixBench工具下载和安装
1、下载
wget https://download.laobuluo.com/tools/UnixBench5.1.3.tgz
tar -zxvf UnixBench5.1.3.tgz
cd UnixBench
2、安装
make
./Run
执行安装,然后会自动运行UnixBench工具进行检测和测试。
3、结果
第三、UnixBench基本参数详解
UnixBench,是一款开源的测试UNIX系统基本性能的工具,通过简单的包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU、内存、磁盘为基准,还取决于硬件、操作系统版本、编译器.。所有测试项目的索引值结合在一起形成一个测试分数值。
下面参数的介绍参考:http://blog.sina.com.cn/s/blog_413d250e0102w87n.html
1、Dhrystone 2 using register variables
此项用于测试 string handling,因为没有浮点操作,所以深受软件和硬件设计(hardware and software design)、编译和链接(compiler and linker options)、代码优化(code optimazaton)、对内存的cache(cache memory)、等待状态(wait states)、整数数据类型(integer data types)的影响。
2、Double-Precision Whetstone
这一项测试浮点数操作的速度和效率。这一测试包括几个模块,每个模块都包括一组用于科学计算的操作。覆盖面很广的一系列 c 函数:sin,cos,sqrt,exp,log 被用于整数和浮点数的数学运算、数组访问、条件分支(conditional branch)和程序调用。此测试同时测试了整数和浮点数算术运算。
3、Execl Throughput
此测试考察每秒钟可以执行的 execl 系统调用的次数。 execl 系统调用是 exec 函数族的一员。它和其他一些与之相似的命令一样是 execve() 函数的前端。
4、File copy
测试从一个文件向另外一个文件传输数据的速率。每次测试使用不同大小的缓冲区。这一针对文件 read、write、copy 操作的测试统计规定时间(默认是 10s)内的文件 read、write、copy 操作次数。
5、Pipe Throughput
管道(pipe)是进程间交流的最简单方式,这里的 Pipe throughtput 指的是一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数。需要注意的是,pipe throughtput 在实际编程中没有对应的真实存在。
6、Pipe-based Context Switching
这个测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。这一点很向现实编程中的一些应用,这个测试程序首先创建一个子进程,再和这个子进程进行双向的管道传输。
7、Process Creation
测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。process creation 的关注点是新进程进程控制块(process control block)的创建和内存分配,即一针见血地关注内存带宽。一般说来,这个测试被用于对操作系统进程创建这一系统调用的不同实现的比较。
8、System Call Overhead
测试进入和离开操作系统内核的代价,即一次系统调用的代价。它利用一个反复地调用 getpid 函数的小程序达到此目的。
9、Shell Scripts
测试一秒钟内一个进程可以并发地开始一个 shell 脚本的 n 个拷贝的次数,n 一般取值 1,2,4,8。(我在测试时取 1, 8)。这个脚本对一个数据文件进行一系列的变形操作(transformation)。