DASHBOARD

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.
Multi-CPU systems are handled. If your system has multiple CPUs, the default behaviour is to run the selected tests twice -- once with one copy of each test program running at a time, and once with N copies, where N is the number of CPUs. This is designed to allow you to assess:
  • the performance of your system when running a single task
  • the performance of your system when running multiple tasks
  • the gain from your system's implementation of parallel processing
Do be aware that this is a system benchmark, not a CPU, RAM or disk benchmark. The results will depend not only on your hardware, but on your operating system, libraries, and even compiler.
Licensed under the GNU GPL v2.

Dhrystone 2

Developed by Reinhold Weicker in 1984. This benchmark is used to measure and compare the performance of computers. The test focuses on string handling, as there are no floating point operations. It is heavily influenced by hardware and software design, compiler and linker options, code optimization, cache memory, wait states, and integer data types.

Double-Precision Whetstone

This test measures the speed and efficiency of floating-point operations. This test contains several modules that are meant to represent a mix of operations typically performed in scientific applications. A wide variety of C functions including sin, cos, sqrt, exp, and log are used as well as integer and floating-point math operations, array accesses, conditional branches, and procedure calls. This test measure both integer and floating-point arithmetic.

Execl Throughput

This test measures the number of execl calls that can be performed per second. Execl is part of the exec family of functions that replaces the current process image with a new process image. It and many other similar commands are front ends for the function execve().

File Copy

This measures the rate at which data can be transferred from one file to another, using various buffer sizes. The file read, write and copy tests capture the number of characters that can be written, read and copied in a specified time (default is 10 seconds).

Pipe Throughput

A pipe is the simplest form of communication between processes. Pipe throughtput is the number of times (per second) a process can write 512 bytes to a pipe and read them back. The pipe throughput test has no real counterpart in real-world programming.

Pipe-based Context Switching

This test measures the number of times two processes can exchange an increasing integer through a pipe. The pipe-based context switching test is more like a real-world application. The test program spawns a child process with which it carries on a bi-directional pipe conversation.

Process Creation

This test measure the number of times a process can fork and reap a child that immediately exits. Process creation refers to actually creating process control blocks and memory allocations for new processes, so this applies directly to memory bandwidth. Typically, this benchmark would be used to compare various implementations of operating system process creation calls.

Shell Scripts

The shells scripts test measures the number of times per minute a process can start and reap a set of one, two, four and eight concurrent copies of a shell scripts where the shell script applies a series of transofrmation to a data file.

System Call Overhead

This estimates the cost of entering and leaving the operating system kernel, i.e. the overhead for performing a system call. It consists of a simple program repeatedly calling the getpid (which returns the process id of the calling process) system call. The time to execute such calls is used to estimate the cost of entering and exiting the kernel.
wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
tar zxvf UnixBench5.1.3.tgz
cd UnixBench
./Run

Phoronix Test Suite

The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available that provides an extensible framework for which new tests can be easily added. The software is designed to effectively carry out both qualitative and quantitative benchmarks in a clean, reproducible, and easy-to-use manner.
The Phoronix Test Suite is based upon the extensive testing and internal tools developed by Phoronix.com since 2004 along with support from leading tier-one computer hardware and software vendors. This software is open-source and licensed under the GNU GPLv3.

DBench

PTS DBench

Apache Load Simulation

This is a test of ab, which is the Apache benchmark program. This test profile measures how many requests per second a given system can sustain when carrying out 700,000 requests with 100 requests being carried out concurrently.

PHP Interpreting

benchmark suite for PHP. It performs a large number of simple tests in order to bench various aspects of the PHP interpreter. PHPBench can be used to compare hardware, operating systems, PHP versions, PHP accelerators and caches, compiler options, etc.

Linux Kernel Compiling

From the <a href="http://www.phoronix-test-suite.com/" target="_blank">Phoronix Benchmark Test Suite</a>, this test times how long it takes to compile a Linux kernel. <br/><br/>Compiling transforms source code into an executable program. While comparing compilation speed can be a good indicator of CPU performance, compilation is important for test/dev environments as well. Specifically with Linux kernel compilation, we are looking at the time it takes to provision an server running a Linux OS, which is relevant to users running Linux-based workloads that scale out.

File Compression

With p7zip’s integrated <a href="http://openbenchmarking.org/test/pts/compress-7zip" target="_blank">benchmark feature</a>, we test the performance of the virtual CPU by measuring the millions of instructions per second (MIPS) that it can handle when compressing a file.<br/><br/>To include a baseline for reference, a dedicated Intel Core i5, which was released in 2010, scored 10774 MIPS. Please note that Intel Core i5 is a quad-core processor, while the test results above are run on virtual machines with 2 virtual CPUs, and Amazon is 2 ECUs on 1 vCPU.<br/>

Audio Encoding (Single Core)

From the <a href="http://www.phoronix-test-suite.com/" target="_blank">Phoronix Benchmark Test Suite</a>, this test times how long it takes to encode a WAV file to MP3 format using LAME, an MP3 encoder. <br/><br/>This encoding test is single-threaded, indicating the CPU performance of a single core on each provider. To compare the performance difference between single-core and multi-core encoding of each provider, see results for CPU Test: Video Encoding.

Video Encoding

<B>Description</B><br/>By using the <a href="http://openbenchmarking.org/test/pts/x264" target="_blank">x264 Video Encoding</a> Test within the Phoronix Benchmark Suite, we can test the performance of the CPU through the compute-intensive task of converting video, and score the provider’s virtual CPU performance based on how many frames are converted per second, i.e., Frames Per Second (FPS). To compare the performance difference between single-core and multi-core encoding of each provider, see results for CPU Test: Audio Encoding.<br/><br/>Video input format: YUV4MPEG2 <br/>Video output format: H.264/MPEG-4 AVC format<br/><br/>To include a baseline for reference, a dedicated Intel Core i5, which was released in 2010, scored 103.3 FPS. Please note that Intel Core i5 is a quad-core processor, while the test results above are run on virtual machines with 2 virtual CPUs, and Amazon is 2 ECUs on 1 vCPU.<br/>

GnuPG encrypt 1GB

GnuPG 1GB File Encryption

OpenSSL 4096bit RSA

OpenSSL 4096-bit Performance (signing)

General RAM Performance

This benchmark tests the system memory (RAM) performance using RAMspeed SMP.

RAM Bandwidth

This benchmark tests the system memory (RAM) performance using STREAM.

postgreSQL Performance

PostGreSQL Performance, insert, update, alter, delete tables

Other tests

These are simple hardware tests, both natural and synthetic that can be reproduced using the Linux command-line.

File copy (cp/local)

This measures the performance of the operating system's 'cp' command, followed by a 'sync' (to flush any cache), executed on the local storage device.
dd if=/dev/zero of=./file.big bs=10MiB count=1024
time ( cp ./file.big ./file.big.copy ; sync ; sync )

Network tests

The network tests have been written in-house and are easily reproduced using the Linux command-line. They assume $SERVER is the IP address of your server and $CLIENT is the IP address of your client.

Iperf (iperf/client)

Iperf is a commonly used network testing tool that can create TCP and UDP data streams and measure the throughput of a network that is carrying them. It is a tool for network performance measurement written in C++, and developed by the Distributed Applications Support Team (DAST) at the National Laboratory for Applied Network Research (NLANR). Our test consists of transferring as much data as possible through the local network (where possible, private network IPs were used) for 120 seconds over TCP port 5001.
wget 'http://downloads.sourceforge.net/project/iperf/iperf-2.0.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fiperf%2F&ts=1341586993&use_mirror=ignum' -O iperf.tgz
tar zxvf iperf.tgz
cd iperf-2.0.5
./configure
make
./src/iperf -s -p 5001
wget 'http://downloads.sourceforge.net/project/iperf/iperf-2.0.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fiperf%2F&ts=1341586993&use_mirror=ignum' -O iperf.tgz
tar zxvf iperf.tgz
cd iperf-2.0.5
./configure
make
./src/iperf -c $SERVER -p 5001 -t 120

File transfer speed (ftp/ram)

Using vsftpd as server and lftp as client, transfer of a 1 GB file. The code below assumes that the root of the vsftpd server is in /mnt/ramfs and anonymous download is permitted.
mkdir -p /mnt/ramfs
chmod 0555 /mnt/ramfs
mount -t ramfs -o size=1050mb ramfs /mnt/ramfs
dd if=/dev/zero of=/mnt/ramfs/file.big bs=1MiB count=1024
time lftpget -d ftp://$SERVER/file.big

File transfer speed (ftp/disk)

Using vsftpd as server and lftp as client, transfer of a 5 GB file. The code below assumes that the root of the vsftpd server is in /tmp and anonymous download is permitted.
dd if=/dev/zero of=/tmp/file.big bs=5MiB count=1024
time lftpget -d ftp://$SERVER/file.big

Network HTTP (wget/apache) (http/client)

Using apache2 as server and wget as client, transfer of a 1 GB file. The code below assumes that the webroot of the httpd server is in /tmp and anonymous access is permitted.
dd if=/dev/zero of=/tmp/file.big bs=1MiB count=1024
time wget http://$SERVER/file.big

Network HTTP (wget/nginx) (http/nginx)

Using nginx as server and wget as client, transfer of a 1 GB file. The code below assumes that the webroot of the httpd server is in /tmp and anonymous access is permitted.
dd if=/dev/zero of=/tmp/file.big bs=1MiB count=1024
time wget http://$SERVER/file.big

File transfer speed (scp/client)

Copying a 5 GB file using scp. The code below assumes that the user guest exists on the server.
dd if=/dev/zero of=/home/guest/file.big bs=5MiB count=1024
time scp guest@$SERVER:file.big .

Internet download speed (http/internet)

Downloading a 512 MB file from thickbroadband.com.
wget http://download.thinkbroadband.com/512MB.zip

Round-trip delay time (ping/client)

The rtt average is used as value (ie, rtt min/avg/max/mdev = 24.081/24.510/24.939/0.429 ms)
ping -c 100 -i 0.25 -s 0 -w 300 -W 5 $SERVER

Download

You can download a copy of the benchmarking-tool similar to the one used by Cloud Spectator NST from here. The software is licensed under GNU GPL v3. The application will need an Internet connection to download some of the tests, but most of them are included in the archive.
The output will be in human-readable format and will be saved in a file named last-run.log and will be appended to a file named run.log.