Phoronix Test Suite

Revision as of 01:32, 28 July 2018 by Admin (talk | contribs) (Phoronix Test Suite Benchmarking Overview)
Jump to navigation Jump to search

Phoronix Test Suite Overview

The latest version of Phoronix test suite can be found here. Please make sure you download the latest stable version, as it gets updated every few months. Phoronix test suite is one of the most common Linux benchmarking utilities out there and it offers a large amount of benchmarking tests that can be uploaded to so you can compare performance between similar hardware.

You can find information on other benchmarking utilities such as FIO or Sysbench by visiting the main Benchmarking wiki page.

Phoronix Test Suite Installation

How to install Phoronix Test Suite 7.2.1 on Ubuntu 16.04

As of July 2017, the latest stable version of Phoronix Test Suite is 7.2.1. To install this on any debian based system, first grab the latest .deb from Phoronix's website:


Ensure that you have all the required dependencies before attempting to install phoronix, most of the time you need to install php-common along with the xml module for php.

apt-get install libxslt1.1 php-cli php-common php7.0-cli php7.0-zip php7.0-common php7.0-json php7.0-opcache php7.0-readline php7.0-xml

If you run into issues when running apt-get install you can clear this up by running

apt-get -f install

Finally we can install phoronix!

dpkg -i phoronix-test-suite_7.2.1_all.deb

Once the install is finished you can run phoronix. The command below will list all available tests, you will need to install these tests, but if you run "phoronix-test-suite benchmark $test" command phoronix will automatically download and install the test before it attempts to run it

phoronix-test-suite list-available-tests

How to install Phoronix test suite on Ubuntu 15.10

To install Phoronix test suite version 6 on Ubuntu 15.10, grab the latest .deb, and be sure to install php5-gd, php-json and php-cli otherwise the install will fail

apt-get install php5-cli php5-gd php5-json
dpkg -i phoronix-test-suite_6.2.1_all.deb

How to install Phoronix test suite on Ubuntu 14.10

To install the latest version of Phoronix test suite on Ubuntu 14.10, grab the latest .deb, install php5 and then just install the package

apt-get install php5-cli php5-gd php5-json
dpkg -i phoronix-test-suite_6.0.1_all.deb

If you don't want to upload results or be asked silly questions by phoronix before it runs a test.

echo nn | /usr/bin/phoronix-test-suite batch-setup

If you get this error when trying to run the Apache or Nginx test The following tests failed to properly run:- pts/nginx-1.1.0: Static Web Page Serving you might need to run the command below to disable IPV6 networking which appears to be what causes this to fail, every time I run into this error disabling IPV6 using sysctl resolves the issue

## Resolves the Nginx phoronix issue with Ubuntu

echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p

How to install Phoronix test suite on CentOS 6 and CentOS 7

To install the latest version of Phoronix test suite on CentOS 6 or CentOS 7 you can download the latest generic package, if you use wget you should rename the file after you download it, simply append .tar.gz then extract the package.

yum install wget php-cli php-xml bzip2 -y
wget -O phoronix-test-suite_7.4.0.tar.gz
tar xvf phoronix-test-suite_7.4.0.tar.gz
cd phoronix-test-suite/

If you get this error when trying to run the Apache or Nginx test The following tests failed to properly run:- pts/nginx-1.1.0: Static Web Page Serving you might need to run the command below to disable IPV6 networking which appears to be what causes this to fail, every time I run into this error disabling IPV6 using sysctl resolves the issue

## Resolves the Nginx phoronix issue with CentOS 6 or CentOS 7

echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p

Phoronix Test Suite: Basic Commands

List all available test suites

To list all of the available test suites that Phoronix provides, run the command below. This will show all available suites. Not all of the test suites will be installed, but if you want to know what your options are with Phoronix, the command below should get you started.

/usr/bin/phoronix-test-suite list-available-suites

List all available tests

Similar to the command above, however this command will show individual tests. A suite is made up of multiple tests, so if you just want to run a specific benchmark and want to see what Phoronix offers, the command below should show you what benchmarking options there are.

/usr/bin/phoronix-test-suite list-available-tests

Phoronix Test Suite Benchmarking Overview

Viewing available Phoronix Test Suites

Phoronix has a lot of test suites that focus on various workloads which can sometimes stress specific components, such as CPU, Memory, Storage, Network, and in some cases all of the above. To view all available test suites run the command below

phoronix-test-suite list-available-suites

As of July 27th 2018, Phoronix 8.0.1 has the following benchmark suites.

Phoronix Test Suite v8.0.1
Available Suites

  pts/audio-encoding               - Audio Encoding                   System
  pts/chess                        - Chess Test Suite                 Processor
  pts/compilation                  - Timed Code Compilation           Processor
  pts/compiler                     - Compiler                         Processor
  pts/compression                  - Timed File Compression           Processor
  pts/computational                - Computational Test Suite         System
  pts/computational-biology        - Computational Biology Test Suite Processor
  pts/cpu                          - CPU / Processor Suite            Processor
  pts/cryptography                 - Cryptography                     Processor
  pts/daily-kernel-tracker         - Daily Kernel Tracker             System
  pts/daily-system-tracker         - Daily System Tracker             System
  pts/database                     - Database Test Suite              System
  pts/desktop-graphics             - Desktop Graphics                 System
  pts/disk                         - Disk Test Suite                  Disk
  pts/encoding                     - Encoding                         System
  pts/favorites                    - Favorites                        System
* pts/gaming                       - Gaming                           System
  pts/gaming-closed                - Closed-Source Gaming             System
* pts/gaming-free                  - Free Software Gaming             System
  pts/gui-toolkits                 - GUI Toolkits                     Graphics
  pts/ioquake3-games               - Games Using The ioquake3 Engine  System
  pts/iqc                          - Image Quality Comparison Suite   Graphics
  pts/java                         - Java                             System
  pts/java-opengl                  - Java OpenGL                      System
  pts/kernel                       - Kernel                           System
  pts/linux-system                 - Linux System                     System
  pts/machine-learning             - Machine Learning                 System
  pts/memory                       - Memory Test Suite                Memory
  pts/mesa                         - Mesa Test Suite                  Graphics
  pts/motherboard                  - Motherboard                      System
  pts/multicore                    - Multi-Core                       Processor
  pts/netbook                      - Netbook Test Suite               System
  pts/network                      - Networking Test Suite            Network
  pts/nevada                       - OpenSolaris Nevada Test Suite    System
  pts/opencl                       - OpenCL                           System
  pts/opengl-demos                 - OpenGL Demos Test Suite          System
  pts/opengl-workstation           - OpenGL Workstation Test Suite    System
  pts/pts-desktop-live             - PTS Desktop Live                 System
  pts/ray-tracing                  - Ray-Tracing Test Suite           System
  pts/server                       - Server Motherboard               System
  pts/ue4                          - Unreal Engine 4 Tech Demos On Linux Graphics
  pts/unigine                      - Unigine Test Suite               Graphics
* pts/universe                     - Universe Test Suite              System
  pts/universe-cli                 - Universe CLI Test Suite          System
* pts/universe-x                   - Universe X Test Suite            System
  pts/video-encoding               - Video Encoding                   System
  pts/workstation                  - Workstation                      System
  pts/workstation-graphics         - Workstation Graphics             Graphics
  pts/xrender                      - X Render Extension Testing       Graphics
  system/collection                - Collection                       System

How to run a Phoronix Test Suite

To run an entire suite of tests in phoronix, use the run-tests-in-suite option, followed by the suite name.

phoronix-test-suite run-tests-in-suite $suite all

How to run Compilation Benchmarks with Phoronix

If you want to benchmark CI/CD workloads with Phoronix you might want to use the pts/compilation suite which contains a few benchmarks that compile various open source software like Apache, PHP, and even the Linux Kernel.

To run Phoronix compilation tests run the command below

phoronix-test-suite run-tests-in-suite pts/compilation all

This suite will tell you how long it takes to compile each project, in seconds, lower times mean faster / better performance.

pts/build-apache-1.5.1 - Seconds (lower is better)
pts/build-imagemagick-1.7.2  - Seconds (lower is better)
pts/build-linux-kernel-1.8.0  - Seconds (lower is better)
pts/build-mplayer-1.3.0  - Seconds (lower is better)
pts/build-php-1.4.0  - Seconds (lower is better)

How to estimate how long Phoronix tests will take to complete

If you want to find out how long a particular benchmark or suite of benchmarks might take to complete, you can use the estimate run time option as shown below.

phoronix-test-suite estimate-run-time $test_or_suite

Phoronix Test Suite Apache and Nginx Tests

Phoronix test suite includes Apache Benchmark 2.4.7, also called: pts/apache-1.6.1 This test is just a basic AB test that hammers Apache with lots of requests. I'm not sure what test file is being used, but I would assume Apache is just serving up a basic html file and AB tries to request the file as many times as possible in a given amount of time.

/usr/bin/phoronix-test-suite benchmark pts/apache

If the Phoronix apache test fails to install / download you may need to install bzip2 to get around the error.

There is also an NGINX performance test, called pts/nginx-1.1.0. This test also uses Apache benchmark, but this time NGINX is serving the requests, not apache. If you run into errors while running the test, and it fails to complete on Ubuntu. You might need to disable IPV6 in /etc/sysctl.conf.

/usr/bin/phoronix-test-suite benchmark pts/nginx

###If pts/nginx-1.1.0 fails to run on Ubuntu, run these commands to resolve the issue

echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p
/usr/bin/phoronix-test-suite benchmark pts/phpbench

Phoronix Compression and Decompression Tests

If you want to use Phoronix Test Suite to test out compression performance, you can use the 5 compress-* tests below. These tests are very CPU intensive, so make sure you have decent CPU cooling before you run a ton of compression tests.

/usr/bin/phoronix-test-suite benchmark pts/compress-7zip
/usr/bin/phoronix-test-suite benchmark pts/compress-gzip 
/usr/bin/phoronix-test-suite benchmark pts/compress-lzma
/usr/bin/phoronix-test-suite benchmark pts/compress-pbzip2

If you want to use Phoronix Test Suite to test out decompression performance, you can use the 5 decompress-* tests below.

/usr/bin/phoronix-test-suite benchmark pts/system-decompress-bzip2
/usr/bin/phoronix-test-suite benchmark pts/system-decompress-gzip
/usr/bin/phoronix-test-suite benchmark pts/system-decompress-tiff
/usr/bin/phoronix-test-suite benchmark pts/system-decompress-xz
/usr/bin/phoronix-test-suite benchmark pts/system-decompress-zlib

Phoronix Media Encoding Tests

The tests below should give you a good idea about how well your server or CPU handles encoding.

/usr/bin/phoronix-test-suite benchmark pts/encode-ape
/usr/bin/phoronix-test-suite benchmark pts/encode-flac
/usr/bin/phoronix-test-suite benchmark pts/encode-mp3
/usr/bin/phoronix-test-suite benchmark pts/encode-ogg
/usr/bin/phoronix-test-suite benchmark pts/encode-opus
/usr/bin/phoronix-test-suite benchmark pts/encode-wavpack

Phoronix Test Suite also has an FFmpeg test which should help to give you a general idea of FFmpeg performance.

/usr/bin/phoronix-test-suite benchmark pts/ffmpeg

General Test Suites

You can find the full list of all the test run under the "CPU" test suite --

The test suites below contain multiple benchmarks which make up the suite. If you want to run a specific test, or only want to run one or two different tests then you should skip to the sections below.

phoronix-test-suite benchmark pts/cpu
phoronix-test-suite benchmark pts/cryptography
phoronix-test-suite benchmark pts/database
phoronix-test-suite benchmark pts/java

Suite tests (A lot of tests wrapped up into one)

## See what tests are available
phoronix-test-suite list-tests
## Basic CPU test
phoronix-test-suite benchmark pts/cpu
## Basic Disk test
phoronix-test-suite benchmark pts/disk
## Basic RAM test
phoronix-test-suite benchmark pts/memory
## Overall system test
phoronix-test-suite benchmark pts/linux-system
## Overall mobo test
phoronix-test-suite benchmark pts/server

Disk and File System Tests

##fio is an advanced disk benchmark that depends upon the kernel's AIO access library.
phoronix-test-suite benchmark pts/fio

##AIO-Stress is an a-synchronous I/O benchmark created by SuSE. Current this profile uses a 2048MB test file and a 64KB record size.
phoronix-test-suite benchmark pts/aio-stress

##Dbench is a benchmark designed by the Samba project as a free alternative to netbench, but dbench contains only file-system calls for testing the disk performance.
phoronix-test-suite benchmark pts/dbench

##The IOzone benchmark tests the hard disk drive / file-system performance.
phoronix-test-suite benchmark pts/iozone

##Compilebench tries to age a filesystem by simulating some of the disk IO common in creating, compiling, patching, stating and reading kernel trees. It indirectly measures how well filesystems can maintain directory locality as the disk fills up and directories age. This current test is setup to use the makej mode with 10 initial directories
phoronix-test-suite benchmark pts/compilebench

CPU Tests

##Smallpt is a C++ global illumination renderer written in less than 100 lines of code. Global illumination is done via unbiased Monte Carlo path tracing and there is multi-threading support via the OpenMP library.
phoronix-test-suite benchmark pts/smallpt

##This test measures the time needed to compress a file using Gzip compression.
phoronix-test-suite benchmark pts/compress-gzip
##Time how long it takes to calculate pi to varying lengths.
phoronix-test-suite benchmark pts/systester

##This is a benchmark of John The Ripper, which is a password cracker.
phoronix-test-suite benchmark pts/john-the-ripper

##This is a test of C-Ray, a simple raytracer designed to test the floating-point CPU performance. This test is multi-threaded (16 threads per core), will shoot 8 rays per pixel for anti-aliasing, and will generate a 1600 x 1200 image.
phoronix-test-suite benchmark pts/c-ray

##NPB, NAS Parallel Benchmarks, is a benchmark developed by NASA for high-end computer systems. This test profile currently uses the MPI version of NPB.
phoronix-test-suite benchmark pts/npb

##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.
phoronix-test-suite benchmark pts/apache

RAM and Cache Tests

##This benchmark tests the system memory (RAM) performance.
phoronix-test-suite benchmark pts/ramspeed

##This benchmark tests the system memory (RAM) performance.
phoronix-test-suite benchmark pts/stream

##CacheBench is designed to test the memory and cache bandwidth performance
phoronix-test-suite benchmark pts/cachebench 

##PHPBench is a 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.
phoronix-test-suite benchmark pts/phpbench