Cloud service providers often define host tiers by the allocated resources, but the differences in the underlying hardware, architecture and performance tuning can result in varying capabilities even between similar configurations. The easiest way to measure the real differences between servers is to run a set of tests, i.e. a benchmark, to create simple to read values for comparisons.
UnixBench
UnixBench is the original BYTE UNIX benchmark suite, updated and revised by many people over the years.The purpose of UnixBench is to provide a basic indicator of the performance of a Unix-like system. Hence, multiple tests are used to test various aspects of the system’s performance. These test results are then compared to the scores from a baseline system to produce an index value, which is generally easier to handle than the raw scores. The entire set of index values is then combined to make an overall index for the system.
Some very simple graphics tests are included to measure the 2D and 3D graphics performance of the system.
Installation commands:
# Ubuntu
cd ~
|
|
sudo apt-get -y install gcc php5-cli | |
wget https://s3.amazonaws.com/cloudbench/software/UnixBench5.1.3.tgz | |
tar zxf UnixBench5.1.3.tgz | |
cd UnixBench | |
make all | |
./Run | |
# CentOS | |
cd ~ | |
sudo yum -y install gcc php-cli | |
wget https://s3.amazonaws.com/cloudbench/software/UnixBench5.1.3.tgz | |
tar zxf UnixBench5.1.3.tgz | |
cd UnixBench | |
make all ./Run |
|
[root@instance-1test ~]# cd ~ [root@instance-1test ~]# sudo yum -y install gcc php-cli Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.serenitytek.com * epel: mirror.steadfastnet.com * extras: mirrors.cmich.edu * updates: centos4.zswap.net Resolving Dependencies --> Running transaction check ---> Package gcc.x86_64 0:4.8.5-39.el7 will be installed --> Processing Dependency: cpp = 4.8.5-39.el7 for package: gcc-4.8.5-39.el7.x86_64 --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-39.el7.x86_64 --> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-39.el7.x86_64 --> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-39.el7.x86_64 ---> Package php-cli.x86_64 0:5.4.16-46.el7 will be installed --> Processing Dependency: php-common(x86-64) = 5.4.16-46.el7 for package: php-cli-5.4.16-46.el7.x86_64 --> Running transaction check ---> Package cpp.x86_64 0:4.8.5-39.el7 will be installed ---> Package glibc-devel.x86_64 0:2.17-292.el7 will be installed --> Processing Dependency: glibc-headers = 2.17-292.el7 for package: glibc-devel-2.17-292.el7.x86_64 --> Processing Dependency: glibc-headers for package: glibc-devel-2.17-292.el7.x86_64 ---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed ---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed ---> Package php-common.x86_64 0:5.4.16-46.el7 will be installed --> Processing Dependency: libzip.so.2()(64bit) for package: php-common-5.4.16-46.el7.x86_64 --> Running transaction check ---> Package glibc-headers.x86_64 0:2.17-292.el7 will be installed --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-292.el7.x86_64 --> Processing Dependency: kernel-headers for package: glibc-headers-2.17-292.el7.x86_64 ---> Package libzip.x86_64 0:0.10.1-8.el7 will be installed --> Running transaction check ---> Package kernel-headers.x86_64 0:3.10.0-1062.1.1.el7 will be installed --> Finished Dependency Resolution
Dependencies Resolved =================================================================================================================== Package Arch Version Repository Size =================================================================================================================== Installing: gcc x86_64 4.8.5-39.el7 base 16 M php-cli x86_64 5.4.16-46.el7 base 2.7 M Installing for dependencies: cpp x86_64 4.8.5-39.el7 base 5.9 M glibc-devel x86_64 2.17-292.el7 base 1.1 M glibc-headers x86_64 2.17-292.el7 base 687 k kernel-headers x86_64 3.10.0-1062.1.1.el7 updates 8.7 M libmpc x86_64 1.0.1-3.el7 base 51 k libzip x86_64 0.10.1-8.el7 base 48 k mpfr x86_64 3.1.1-4.el7 base 203 k php-common x86_64 5.4.16-46.el7 base 565 k Transaction Summary =================================================================================================================== Install 2 Packages (+8 Dependent packages) Total download size: 36 M Installed size: 73 M Downloading packages: (1/10): cpp-4.8.5-39.el7.x86_64.rpm | 5.9 MB 00:00:00 (2/10): glibc-devel-2.17-292.el7.x86_64.rpm | 1.1 MB 00:00:00 (3/10): glibc-headers-2.17-292.el7.x86_64.rpm | 687 kB 00:00:00 (4/10): libmpc-1.0.1-3.el7.x86_64.rpm | 51 kB 00:00:00 (5/10): gcc-4.8.5-39.el7.x86_64.rpm | 16 MB 00:00:01 (6/10): libzip-0.10.1-8.el7.x86_64.rpm | 48 kB 00:00:00 (7/10): mpfr-3.1.1-4.el7.x86_64.rpm | 203 kB 00:00:00 (8/10): php-common-5.4.16-46.el7.x86_64.rpm | 565 kB 00:00:00 (9/10): php-cli-5.4.16-46.el7.x86_64.rpm | 2.7 MB 00:00:00 (10/10): kernel-headers-3.10.0-1062.1.1.el7.x86_64.rpm | 8.7 MB 00:00:00 ------------------------------------------------------------------------------------------------------------------- Total 20 MB/s | 36 MB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mpfr-3.1.1-4.el7.x86_64 1/10 Installing : libmpc-1.0.1-3.el7.x86_64 2/10 Installing : cpp-4.8.5-39.el7.x86_64 3/10 Installing : kernel-headers-3.10.0-1062.1.1.el7.x86_64 4/10 Installing : glibc-headers-2.17-292.el7.x86_64 5/10 Installing : glibc-devel-2.17-292.el7.x86_64 6/10 Installing : libzip-0.10.1-8.el7.x86_64 7/10 Installing : php-common-5.4.16-46.el7.x86_64 8/10 Installing : php-cli-5.4.16-46.el7.x86_64 9/10 Installing : gcc-4.8.5-39.el7.x86_64 10/10 Verifying : glibc-devel-2.17-292.el7.x86_64 1/10 Verifying : mpfr-3.1.1-4.el7.x86_64 2/10 Verifying : php-cli-5.4.16-46.el7.x86_64 3/10 Verifying : libzip-0.10.1-8.el7.x86_64 4/10 Verifying : libmpc-1.0.1-3.el7.x86_64 5/10 Verifying : cpp-4.8.5-39.el7.x86_64 6/10 Verifying : gcc-4.8.5-39.el7.x86_64 7/10 Verifying : kernel-headers-3.10.0-1062.1.1.el7.x86_64 8/10 Verifying : glibc-headers-2.17-292.el7.x86_64 9/10 Verifying : php-common-5.4.16-46.el7.x86_64 10/10 Installed: gcc.x86_64 0:4.8.5-39.el7 php-cli.x86_64 0:5.4.16-46.el7 Dependency Installed: cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-292.el7 glibc-headers.x86_64 0:2.17-292.el7 kernel-headers.x86_64 0:3.10.0-1062.1.1.el7 libmpc.x86_64 0:1.0.1-3.el7 libzip.x86_64 0:0.10.1-8.el7 mpfr.x86_64 0:3.1.1-4.el7 php-common.x86_64 0:5.4.16-46.el7 Complete! [root@instance-1test ~]# cd ~ [root@instance-1test ~]# wget https://s3.amazonaws.com/cloudbench/software/UnixBench5.1.3.tgz
--2019-10-01 01:20:30-- https://s3.amazonaws.com/cloudbench/software/UnixBench5.1.3.tgz
Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.38.246
Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.38.246|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 143259 (140K) [application/x-compressed]
Saving to: ‘UnixBench5.1.3.tgz’
100%[=========================================================================>] 143,259 --.-K/s in 0.09s
2019-10-01 01:20:31 (1.45 MB/s) - ‘UnixBench5.1.3.tgz’ saved [143259/143259]
[root@instance-1test ~]# tar zxf UnixBench5.1.3.tgz
[root@instance-1test ~]# cd UnixBench
[root@instance-1test UnixBench]# make all
Checking distribution of files
./pgms exists
./src exists
./testdir exists
./results exists
gcc -o ./pgms/arithoh -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Darithoh ./src/arith.c
gcc -o ./pgms/register -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Ddatum='register int' ./src/arith.c
gcc -o ./pgms/short -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Ddatum=short ./src/arith.c
gcc -o ./pgms/int -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Ddatum=int ./src/arith.c
gcc -o ./pgms/long -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Ddatum=long ./src/arith.c
gcc -o ./pgms/float -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Ddatum=float ./src/arith.c
gcc -o ./pgms/double -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Ddatum=double ./src/arith.c
gcc -o ./pgms/hanoi -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/hanoi.c
gcc -o ./pgms/syscall -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/syscall.c
./src/syscall.c: In function ‘main’:
./src/syscall.c:93:21: warning: null argument where non-null required (argument 2) [-Wnonnull]
execl("/bin/true", (char *) 0);
^
gcc -o ./pgms/context1 -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/context1.c
gcc -o ./pgms/pipe -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/pipe.c
gcc -o ./pgms/spawn -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/spawn.c
gcc -o ./pgms/execl -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/execl.c
In file included from ./src/execl.c:34:0:
./src/big.c: In function ‘getwork’:
./src/big.c:452:11: warning: variable ‘c’ set but not used [-Wunused-but-set-variable]
char c;
^
cd ./src; gcc -c -DTIME -Wall -pedantic -ansi -DHZ= -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall dhry_1.c
cd ./src; gcc -c -DTIME -Wall -pedantic -ansi -DHZ= -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall dhry_2.c
gcc -o ./pgms/dhry2 -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/dhry_1.o ./src/dhry_2.o
cd ./src; rm -f dhry_1.o dhry_2.o
cd ./src; gcc -c -DTIME -Wall -pedantic -ansi -DREG=register -DHZ= -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall dhry_1.c -o dhry_1_reg.o
cd ./src; gcc -c -DTIME -Wall -pedantic -ansi -DREG=register -DHZ= -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall dhry_2.c -o dhry_2_reg.o
gcc -o ./pgms/dhry2reg -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/dhry_1_reg.o ./src/dhry_2_reg.o
cd ./src; rm -f dhry_1_reg.o dhry_2_reg.o
gcc -o ./pgms/looper -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/looper.c
gcc -o ./pgms/fstime -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/fstime.c
gcc -o ./pgms/whetstone-double -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -DDP -DUNIX -DUNIXBENCH ./src/whets.c -lm
[root@instance-1test UnixBench]# ls
Makefile pgms README results Run src testdir tmp USAGE WRITING_TESTS
[root@instance-1test UnixBench]# ./Run
make all
make[1]: Entering directory `/root/UnixBench'
Checking distribution of files
./pgms exists
./src exists
./testdir exists
./tmp exists
./results exists
make[1]: Leaving directory `/root/UnixBench'
sh: 3dinfo: command not found
# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # # #
# # # # # # ## ##### ##### # # # # ######
# # # # # # ## # # # # # # # # #
# # # ## # # # # # # # ## # # # #
#### # # # # # ##### ###### # # #### # #
Version 5.1.3 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
January 13, 2011 johantheghost at yahoo period com
1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
1 x Double-Precision Whetstone 1 2 3 4 5 6
Following test result is coming from GCP Free Tier VM:
[root@instance-1test UnixBench]# ./Run
make all
make[1]: Entering directory `/root/UnixBench'
Checking distribution of files
./pgms exists
./src exists
./testdir exists
./tmp exists
./results exists
make[1]: Leaving directory `/root/UnixBench'
sh: 3dinfo: command not found
# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # # #
# # # # # # ## ##### ##### # # # # ######
# # # # # # ## # # # # # # # # #
# # # ## # # # # # # # ## # # # #
#### # # # # # ##### ###### # # #### # #
Version 5.1.3 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
January 13, 2011 johantheghost at yahoo period com
1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10
1 x Execl Throughput 1 2 3
1 x File Copy 1024 bufsize 2000 maxblocks 1 2 3
1 x File Copy 256 bufsize 500 maxblocks 1 2 3
1 x File Copy 4096 bufsize 8000 maxblocks 1 2 3
1 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10
1 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10
1 x Process Creation 1 2 3
1 x System Call Overhead 1 2 3 4 5 6 7 8 9 10
1 x Shell Scripts (1 concurrent) 1 2 3
1 x Shell Scripts (8 concurrent) 1 2 3
========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)
System: instance-1test: GNU/Linux
OS: GNU/Linux -- 3.10.0-957.27.2.el7.x86_64 -- #1 SMP Mon Jul 29 17:46:05 UTC 2019
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Xeon(R) CPU @ 2.30GHz (4600.0 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
01:26:04 up 25 min, 1 user, load average: 0.04, 0.20, 0.34; runlevel 3
------------------------------------------------------------------------
Benchmark Run: Tue Oct 01 2019 01:26:04 - 01:59:30
1 CPU in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 25305481.5 lps (10.0 s, 7 samples)
Double-Precision Whetstone 900.5 MWIPS (43.0 s, 7 samples)
Execl Throughput 758.4 lps (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 309034.2 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 42617.1 KBps (30.1 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 607069.7 KBps (30.0 s, 2 samples)
Pipe Throughput 295781.1 lps (10.1 s, 7 samples)
Pipe-based Context Switching 65693.7 lps (10.0 s, 7 samples)
Process Creation 2960.3 lps (30.1 s, 2 samples)
Shell Scripts (1 concurrent) 1036.0 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 121.2 lpm (60.1 s, 2 samples)
System Call Overhead 258104.6 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 25305481.5 2168.4
Double-Precision Whetstone 55.0 900.5 163.7
Execl Throughput 43.0 758.4 176.4
File Copy 1024 bufsize 2000 maxblocks 3960.0 309034.2 780.4
File Copy 256 bufsize 500 maxblocks 1655.0 42617.1 257.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 607069.7 1046.7
Pipe Throughput 12440.0 295781.1 237.8
Pipe-based Context Switching 4000.0 65693.7 164.2
Process Creation 126.0 2960.3 234.9
Shell Scripts (1 concurrent) 42.4 1036.0 244.3
Shell Scripts (8 concurrent) 6.0 121.2 202.1
System Call Overhead 15000.0 258104.6 172.1
========
System Benchmarks Index Score 316.9
[root@instance-1test UnixBench]#
Bench.sh – from 秋水逸冰
bench.sh 特点:
2、取自世界多处的知名数据中心的测试点,下载测试比较全面;
3、支持 IPv6 下载测速;
4、IO 测试三次,并显示平均值。
命令1:
bench.sh 既是脚本名,同时又是域名。所以不要怀疑我写错了或者你看错了。
nench.sh (new bench.sh) script:
https://github.com/n-st/nench provides a nice bench.sh and a single command for you to run this script on your VPS.
Commands to run this script:
(curl -s wget.racing/nench.sh | bash; curl -s wget.racing/nench.sh | bash) 2>&1 | tee nench.log
(wget -qO- wget.racing/nench.sh | bash; wget -qO- wget.racing/nench.sh | bash) 2>&1 | tee nench.log
Basically this benchmark script will do following tasks:
- get system info
- benchmark the processor and memory (both single and multi core)
- benchmark the disk
- benchmark networking
SuperBench.sh – 一键测试服务器
from 老鬼的博客 (Oldking)
一、特点
- 改进了显示的模式,基本参数添加了颜色,方面区分与查找。
- I/O测试,更改了原来默认的测试的内容,采用小文件,中等文件,大文件,分别测试IO性能,然后取平均值。
- 速度测试替换成了 Superspeed 里面的测试,第一个默认节点是,Speedtest 默认,其他分别测试到中国电信,联通,移动,各三个不同地区的速度。
二、使用方法
wget -qO- --no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
curl -Lso- -no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
Zbench 测试脚本 from 漏水和kirito
脚本由漏水和kirito,基于Oldking大佬 的 SuperBench,然后加入Ping以及路由测试的功能,还能生成测评报告,分享给其他人查看测评数据
使用方法
- Linux benchmark scripts and tools
- Bench scripts
- Benchmarks performed by Linux-Bench
- gitbub – unixbench
- unixbench / Install