Phoronix Test Suite
Phoronix Test Suite
Phoronix Test Suite
com
Getting Started
Overview
The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for
Linux, Solaris, Mac OS X, and BSD operating systems. The Phoronix Test Suite allows for carrying out
tests in a fully automated manner from test installation to execution and reporting. All tests are meant to
be easily reproducible, easy-to-use, and support fully automated execution. The Phoronix Test Suite is
open-source under the GNU GPLv3 license and is developed by Phoronix Media in cooperation with
partners. Version 1.0 of the Phoronix Test Suite was publicly released in 2008.
The Phoronix Test Suite client itself is a test framework for providing seamless execution of test profiles
and test suites. There are more than 200 tests available by default, which are transparently available
via OpenBenchmarking.org integration. Of these default test profiles there is a range of sub-systems
that can be tested and a range of hardware from mobile devices to desktops and worksrtations/servers.
New tests can be easily introduced via the Phoronix Test Suite's extensible test architecture, with test
profiles consisting of XML files and shell scripts. Test profiles can produce a quantitative result or other
qualitative/abstract results like image quality comparisons and pass/fail. Using Phoronix Test Suite
modules, other data can also be automatically collected at run-time such as the system power
consumption, disk usage, and other software/hardware sensors. Test suites contain references to test
profiles to execute as part of a set or can also reference other test suites. Test suites are defined via an
XML schema.
Running the Phoronix Test Suite for the first time can be as simple as issuing a command such as
phoronix-test-suite benchmark c-ray, which would proceed to install a simple CPU test, execute the
test, and report the results. Along with the results, the system's hardware/software information is
collected in a detailed manner, relevant system logs, and other important system attributes such as
compiler flags and system state. Users can optionally upload their results to OpenBenchmarking.org for
sharing results with others, comparing results against other systems, and to carry out further analysis.
OpenBenchmarking.org
OpenBenchmarking.org is an open, collaborative testing platform that makes the Phoronix Test Suite
an even more extensible platform for conducting automated tests with complete integration into
Phoronix Test Suite test client. OpenBenchmarking.org serves as a repository for storing test profiles,
test suites, and result data. Test profiles and suites are stored in the OpenBenchmarking.org cloud to
allow for new/updated tests to be seamlessly obtained via the Phoronix Test Suite without needing to
manually update the Phoronix Test Suite client. OpenBenchmarking.org also makes it easy to facilitate
side-by-side comparisons with any other results stored in the OpenBenchmarking.org cloud. Any
Phoronix Test Suite user is permitted to upload their test results, test profiles, and suites to
OpenBenchmarking.org.
When finding a set of results on OpenBenchmarking.org (e.g. an example result file), it's as easy as
running the Phoronix Test Suite with that OpenBenchmarking.org ID to perform an automated
side-by-side comparison (e.g. phoronix-test-suite benchmark 1203160-BY-NVTEGRA3785).
Thanks to the wealth of test data (results, system logs, etc) from crowd-sourced benchmarking via the
www.phoronix-test-suite.com
Phoronix Test Suite, a plethora of analytical features are also available from OpenBenchmarking.org.
Phoromatic
Phoromatic is a remote management system for the Phoronix Test Suite that allows the automatic
scheduling of tests, remote installation of new tests, and the management of multiple test systems all
through an intuitive, easy-to-use web interface. Tests can be scheduled to automatically run on a
routine basis across multiple test systems. Phoromatic can also interface with revision control systems
to offer support for issuing new tests on a context-basis, such as whenever a Git commit has been
pushed or new daily image available. The test results are then available from this central, secure
location.
Phoromatic is an add-on to the Phoronix Test Suite that's primarily intended for enterprise users when
facilitating tests across a wide-spectrum of hardware within a test lab or when needing to carry out tests
on a routine basis.
www.phoronix-test-suite.com
User Options
The following options are currently supported by the Phoronix Test Suite client. A list of available
options can also be found by running phoronix-test-suite help.
Test Installation
install [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
This option will install the selected test(s) inside the testing environment directory. The install process
from downloading of the test files to the installation is fully automated. The install option needs to be
supplied with the test name or suite as an argument. Optionally, a OpenBenchmarking.org ID or the
name of a saved results file can be supplied as well and the test(s) to install will automatically be
extracted from that information. If the test is already installed and was run by the latest version of the
installation process, no action will be taken. Multiple arguments can be supplied to install additional
tests at the same time.
make-download-cache
This option will create a download cache for use by the Phoronix Test Suite. The download cache is
created of test files already downloaded to the local system. If passing any test/suite names to
make-download-cache, the needed files for those test profiles will first be automatically downloaded
before creating the cache.
remove-installed-test [Test]
This option will permanently remove a installed test by the Phoronix Test Suite.
Testing
auto-compare
This option will autonomously determine the most relevant test(s) to run for any selected sub-system(s).
The tests to run are determined via OpenBenchmarking.org integration with the global results pool.
Related test results from OpenBenchmarking.org are also merged to provide a straight-forward and
www.phoronix-test-suite.com
effective means of carrying out a system comparison. If wishing to find comparable results for any
particular test profile(s), simply pass the test profile names as additional arguments to this command.
run-random-tests
This option will query OpenBenchmarking.org to run random benchmarks and result comparisons on
the system. This test can be used for simply supplying interesting results from your system onto
OpenBenchmarking.org, stressing your system with random workloads, seeding new
OpenBenchmarking.org results, etc. Basic options are provided at start-up for tuning the randomness of
the testing when running this command.
run-tests-in-suite
This option can be used if you wish to run all of the tests found in a supplied suite, but you wish to
re-configure each of the test options rather than using the defaults supplied by the suite.
Batch Testing
batch-benchmark [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
This option and its arguments are equivalent to the benchmark option, but the process will be run in the
Phoronix Test Suite batch mode.
www.phoronix-test-suite.com
tests at this time. Running the install process in the batch mode will use the default values and not
prompt the user of any possible options, to ensure the process is fully automated.
batch-setup
This option is used to configure the batch mode options for the Phoronix Test Suite, which is
subsequently written to the user configuration file. Among the options are whether to automatically
upload the test results to OpenBenchmarking.org and prompting for the saved file name.
OpenBenchmarking.org
clone-result [OpenBenchmarking ID] ...
This option will download a local copy of a file that was saved to OpenBenchmarking.org, as long as a
valid public ID is supplied.
list-recommended-tests
This option will list recommended test profiles for benchmarking sorted by hardware sub-system. The
recommended tests are determined via querying OpenBenchmarking.org and determining the most
popular tests for a given environment based upon the number of times a test profile has been
downloaded, the number of test results available on OpenBenchmarking.org for a given test profile, the
age of the test profile, and other weighted factors.
www.phoronix-test-suite.com
make-openbenchmarking-cache
This option will attempt to cache the test profile/suite meta-data from OpenBenchmarking.org for all
linked repositories. This is useful if you're going to be running the Phoronix Test Suite / Phoromatic
behind a firewall or without any Internet connection. Those with unrestricted Internet access or not
utilizing a large local deployment of the Phoronix Test Suite / Phoromatic shouldn't need to run this
command.
openbenchmarking-changes
This option will list recent changes to test profiles of enabled OpenBenchmarking.org repositories.
openbenchmarking-launcher
This option is called automatically with the .openbenchmarking MIME file extension support for
launching OpenBenchmarking.org operations.
openbenchmarking-login
This option is used for controlling your Phoronix Test Suite client options for OpenBechmarking.org and
syncing the client to your account.
openbenchmarking-refresh
This option is used for refreshing the stored OpenBenchmarking.org repostory information and other
data. The Phoronix Test Suite will automatically refresh this data every three days or when other
thresholds are exceeded, but this command can be used to manually refresh/updates the data.
openbenchmarking-repositories
This option will list the OpenBenchmarking.org repositories currently linked to this Phoronix Test Suite
client instance.
upload-test-profile
This option can be used for uploading a test profile to your account on OpenBenchmarking.org. By
uploading your test profile to OpenBenchmarking.org, others are then able to browse and access this
test suite for easy distribution in a seamless manner by other Phoronix Test Suite clients.
upload-test-suite
This option can be used for uploading a test suite to your account on OpenBenchmarking.org. By
uploading your test suite to OpenBenchmarking.org, others are then able to browse and access this
test suite for easy distribution.
www.phoronix-test-suite.com
System
detailed-system-info
Display detailed information about the installed system hardware and software information as detected
by the Phoronix Test Suite Phodevi Library.
diagnostics
This option will print information that is useful to developers when debugging problems with the
Phoronix Test Suite and/or test profiles and test suites.
interactive
A simple text-driven interactive interface to the Phoronix Test Suite.
system-info
Display the installed system hardware and software information as detected by the Phoronix Test Suite
Phodevi Library.
system-sensors
Display the installed system hardware and software sensors in real-time as detected by the Phoronix
Test Suite Phodevi Library.
Information
info [Test | Suite | OpenBenchmarking.org ID | Test Result]
This option will show details about the supplied test, suite, virtual suite, or result file.
list-available-suites
This option will list all test suites that are available from the enabled OpenBenchmarking.org
repositories.
list-available-tests
This option will list all test profiles that are available from the enabled OpenBenchmarking.org
repositories.
list-available-virtual-suites
This option will list all available virtual test suites that can be dynamically created based upon the
available tests from enabled OpenBenchmarking.org repositories.
list-installed-dependencies
www.phoronix-test-suite.com
This option will list all of the packages / external test dependencies that are already installed on the
system that the Phoronix Test Suite may potentially depend upon by test profiles.
list-installed-suites
This option will list all suites that are currently installed on the system.
list-installed-tests
This option will list all test profiles that are currently installed on the system.
list-missing-dependencies
This option will list all of the packages / external test dependencies that are missing from the system
that the Phoronix Test Suite may potentially need by select test profiles.
list-possible-dependencies
This option will list all of the packages / external test dependencies that are are potentially used by the
Phoronix Test Suite.
list-saved-results
This option will list all of the saved test results found on the system.
list-test-usage
This option will list various details about installed tests and their usage.
list-unsupported-tests
This option will list all available test profiles that are available from the enabled OpenBenchmarking.org
repositories but are NOT SUPPORTED on the given hardware/software platform. This is mainly a
debugging option for those looking for test profiles to potentially port to new platforms, etc.
Asset Creation
debug-benchmark [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
This option is intended for use by test profile writers and is identical to the <em>run</em> option but
will yield more information during the run process that can be used to debug issues with a test profile or
to verify the test profile is functioning correctly.
www.phoronix-test-suite.com
validate-result-file
This option can be used for validating a Phoronix Test Suite result file as being compliant against the
OpenBenchmarking.org specification.
validate-test-profile
This option can be used for validating a Phoronix Test Suite test profile as being compliant against the
OpenBenchmarking.org specification.
validate-test-suite
This option can be used for validating a Phoronix Test Suite test suite as being compliant against the
OpenBenchmarking.org specification.
Result Management
auto-sort-result-file [Test Result]
This option is used if you wish to automatically attempt to sort the results by their result identifier string.
www.phoronix-test-suite.com
results that have been merged. The user is the prompted to specify a new result file name and select
which result identifier to extract.
www.phoronix-test-suite.com
Result Analytics
analyze-all-runs [Test Result]
This option will generate a candlestick graph showing the distribution of results from all trial runs. The
candlestick graph is similar to the Japanese candlestick charts used by the financial industry, except
instead of representing stock data it is numerical result data from all trial runs.\n\nThe tip of the
upper-wick represents the highest value of the test runs with the tip of the lower-wick representing the
lowest value of all test runs. The upper-edge of the candle body represents the first or last run value
and the lower-edge represents the first or last run value. Lastly, if the last run value is less than the first
run value, the candle body is the same color as the graph background, otherwise the last run value is
greater.
Other
build-suite
This option will guide the user through the process of generating their own test suite, which they can
then run. Optionally, passed as arguments can be the test(s) or suite(s) to add to the suite to be
created, instead of being prompted through the process.
debug-dependency-handler
This option is used for testing the distribution-specific dependency handler for external dependencies.
debug-render-test
This option is used during the development of the Phoronix Test Suite software for testing of the result
and graph rendering code-paths This option will download a large number of reference test results from
LinuxBenchmarking.com.
debug-self-test
This option is used during the development of the Phoronix Test Suite software for testing of internal
interfaces, commands, and other common code-paths. The produced numbers should only be
www.phoronix-test-suite.com
comparable for the same version of the Phoronix Test Suite, on the same hardware/software system,
conducted on the same day of testing. This isn't intended as any scientific benchmark but simply to
stress common PHP code-paths and looking for hot areas to optimize, etc.
enterprise-setup
This option can be run by enterprise users immediately after package installation or as part of an
in-house setup script. Running this command will ensure the phoronix-test-suite program is never
interrupted on new runs to accept user agreement changes and defaults the anonymous usage
reporting to being disabled and other conservative defaults.
help
This option will display the list of available Phoronix Test Suite commands.
network-setup
This option allows the user to configure how the Phoronix Test Suite connects to
OpenBenchmarking.org and other web-services. Connecting through an HTTP proxy can be configured
through this option.
user-config-reset
This option can be used for resetting the Phoronix Test Suite user configuration file to its default state.
user-config-set
This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.
version
This option will display the Phoronix Test Suite client version.
start-remote-gui-server
Start the GUI web server and WebSocket server processes for remote (or local) access via the
web-browser. The settings can be configured via the Phoronix Test Suite's XML configuration file.
start-ws-server
Manually start a WebSocket server for communication by remote Phoronix Test Suite GUIs, the
Phoronix Test Suite Multi-System Commander, and other functionality. This function checks the
www.phoronix-test-suite.com
Modules
list-modules
This option will list all of the available Phoronix Test Suite modules on this system.
Phoromatic
start-phoromatic-server
Start the Phoromatic web server for controlling local Phoronix Test Suite client systems to facilitate
automated and repeated test orchestration and other automated features targeted at the enterprise.
www.phoronix-test-suite.com
Module Options
The following list is the modules included with the Phoronix Test Suite that are intended to extend the
functionality of pts-core. Some of these options have commands that can be run directly in a similiar
manner to the other Phoronix Test Suite user commands. Some modules are just meant to be loaded
directly by adding the module name to the LoadModules tag in ~/.phoronix-test-suite/user-config.xml or
via the PTS_MODULES environmental variable. A list of available modules is also available by running
phoronix-test-suite list-modules.
Dummy Module
This is a simple module intended for developers to just demonstrate some of the module functions.
phoronix-test-suite dummy_module.dummy-command
Graphics Override
This module allows you to override some graphics rendering settings for the ATI and NVIDIA drivers
while running the Phoronix Test Suite.
This module utilizes the following environmental variables: FORCE_AA, FORCE_AF.
MATISK
My Automated Test Infrastructure Setup Kit
phoronix-test-suite matisk.run
phoronix-test-suite matisk.template
www.phoronix-test-suite.com
Phoromatic Client
The Phoromatic client is used for connecting to a Phoromatic server (Phoromatic.com or a locally run
server) to facilitate the automatic running of tests, generally across multiple test nodes in a routine
manner. For more details visit http://www.phoromatic.com/. This module is intended to be used with
Phoronix Test Suite 5.2+ clients and servers.
phoronix-test-suite phoromatic.connect
phoronix-test-suite phoromatic.explore
phoronix-test-suite phoromatic.upload-result
phoronix-test-suite phoromatic.set-root-admin-password
phoronix-test-suite phoromatic.list-results
phoronix-test-suite phoromatic.clone
phoronix-test-suite phoromatic.export-results-for-account-schedules
Pushover.net
Submit notifications to your iOS/Android mobile devices of test results in real-time as push notifications,
etc. Using the Pushover.net API.
This module utilizes the following environmental variables: PUSHOVER_NET_USER.
Result Notifier
A notification module.
System Monitor
This module contains sensor monitoring support.
This module utilizes the following environmental variables: MONITOR, PERFORMANCE_PER_WATT,
MONITOR_INTERVAL, MONITOR_PER_RUN.
www.phoronix-test-suite.com
Timed Screenshot
This is a module that will take a screenshot of the system at a pre-defined interval. ImageMagick must
be installed onto the system prior to using this module.
This module utilizes the following environmental variables: SCREENSHOT_INTERVAL.
Toggle Screensaver
This module toggles the system's screensaver while the Phoronix Test Suite is running. At this time, the
GNOME and KDE screensavers are supported.
This module utilizes the following environmental variables: HALT_SCREENSAVER.
Update Checker
This module checks to see if the Phoronix Test Suite -- and its tests and suites -- are up to date.
www.phoronix-test-suite.com
Installation Instructions
Setup Overview
The Phoronix Test Suite supports Linux, Apple Mac OS X, Microsoft Windows, Solaris, Hurd, BSD, and
other operating system environments. The only Linux distribution-specific code deals with the external
dependencies support feature that are set by individual test profiles. If you are not running one of the
supported Linux distributions, Solaris, BSD, or Mac OS X, you may need to install a package manually
(as instructed by the Phoronix Test Suite) in order for a test to run. An example of an external
dependency would be GCC and the OpenGL Utility Toolkit being needed for test profiles that build an
OpenGL benchmark from source-code.
Among the distributions where the Phoronix Test Suite has been officially tested include Ubuntu,
Fedora, Mandriva / Mageia, Gentoo, PCLinuxOS, Arch Linux, Pardus, OpenSuSE, Optware, webOS,
Zenwalk, CentOS, Red Hat Enterprise Linux, Oracle Linux, Scientific Linux, Debian, Mint, MEPIS, and
Amazon Linux EC2.
Among the tested BSD distributions are FreeBSD, PC-BSD, NetBSD, OpenBSD, Debian
GNU/kFreeBSD, and DragonflyBSD. Tested Solaris distributions include OpenSolaris, Solaris Express
11, Oracle Solaris 11, OpenIndiana, Illumos, and Nexenta.
Dependencies
The only required dependency for the Phoronix Test Suite is PHP 5.3 or newer. On Linux distributions,
the needed package is commonly called php5-cli or php-cli or php. It is important to note that only PHP
for the command-line is needed and not a web server (Apache) or other packages commonly
associated with PHP and its usage by web-sites. The PHP5 version required is PHP 5.3+ and can also
be found at www.php.net.
For installing PHP on Windows, the Microsoft Web Platform Installer provides an automated
alternative that will install PHP into the directory expected by Phoronix Test Suite. Users opting to install
PHP manually must extract the files to C:\Program Files (x86)\PHP\ or a subdirectory.
As part of the PHP requirement, the following PHP extensions are required and/or highly recommended
in order to take advantage of the Phoronix Test Suite capabilities:
PHP DOM is needed for XML operations and must be installed for the Phoronix Test Suite to
function.
PHP ZIP is needed for file compression and decompression and specifically dealing with test
profiles and suites obtained via OpenBenchmarking.org or when uploading such tests and suites.
PHP OpenSSL is used for enabling HTTPS communication with Phoronix Test Suite /
www.phoronix-test-suite.com
OpenBenchmarking.org servers.
PHP GD is highly recommended for rendering of test data to JPEG and PNG image formats and
is selectively used in other image operations.
PHP Zlib is highly recommended for greater data compression when dealing with remote
OpenBenchmarking.org assets.
PHP PCNTL is used for multi-threaded system sensor monitoring support during the testing
process and other threaded tasks by the Phoronix Test Suite module framework.
PHP POSIX is used for reliably obtaining more system information in an efficient manner.
PHP CURL is supported as an alternative networking library for improved network performance in
downloading test files and other operations.
PHP FPDF is used to generate PDF reports of test data.
Without all of these extensions, some capabilities of the Phoronix Test Suite will not be available. Many
of these packages are enabled by default and do not require any additional installation steps on most
Linux distributions, otherwise they are often found in the package vendor's repository.
Notes
General
You may need to modify the php.ini file on your system in order to support uploading results to
OpenBenchmarking.org or logging into your OpenBenchmarking.org account. The allow_url_fopen,
file_uploads, and allow_url_include options must be set to true in the PHP configuration. See additional
information in this Phoronix Forums support thread.
Major updates to the Phoronix Test Suite are released on a quarterly basis. The latest stable and
development versions of the Phoronix Test Suite are available at Phoronix-Test-Suite.com. The Git
repository where the latest Phoronix Test Suite code is provided is hosted at
GitHub.com/phoronix-test-suite and can be cloned/pulled from the
https://github.com/phoronix-test-suite/phoronix-test-suite.git repository location. The latest upstream
development code is housed in the master tree while older Phoronix Test Suite releases are available
in their respective Git branches based upon the release's code-name.
If building the PHP package from upstream sources, it should just be a matter of running ./configure
with the --enable-zip flag (all other requirements should be apart of the stock PHP configuration) to
satisfy the PHP needs of the Phoronix Test Suite.
www.phoronix-test-suite.com
File Structure
If manually changing the location of the phoronix-test-suite launcher file, the PTS_USER_PATH
environment variable must be adjusted inside the file to reflect the absolute location that leads to the
root directory of the pts and pts-core folders. The pts-core directory contains the "engine" of the
Phoronix Test Suite.
Running Locally
The Phoronix Test Suite can be simply extracted from the downloaded .tar.gz or .zip file or it can also
be installed system-wide. If you just wish to run the Phoronix Test Suite without installing it, open a
terminal and run ./phoronix-test-suite <options> from the same directory.
Generic Installation
Running install-sh from the root directory of the Phoronix Test Suite will install the software for
system-wide access. By default the phoronix-test-suite executable is in /usr/bin/, the Phoronix Test
Suite files in /usr/share/phoronix-test-suite/, and the documentation in /
usr/share/doc/phoronix-test-suite/. Root access is required. The default installation prefix is /usr/ but
can be adjusted as the first argument (example: install-sh /home/user/ to install the Phoronix Test Suite
in your home directory).
Debian/Ubuntu Installation
Debian/Ubuntu users are able to follow the Generic Installation instructions or can obtain a Debian
Package from the Phoronix Test Suite web-site. The package contains the phoronix-test-suite
executable in /usr/bin/, the Phoronix Test Suite files in /usr/share/phoronix-test-suite/, and the
documentation in /usr/share/doc/phoronix-test-suite/.
A phoronix-test-suite package can also be found in the official Ubuntu universe repository beginning
with the Ubuntu 9.04 (Jaunty) release, but it may be out of date compared to the latest upstream
version.
On Ubuntu 13.04 and newer if you experience an issue of system sensor monitoring not working, other
multi-process tasks, or related issues reported as PHP PCNTL missing, the pcntl functions need to be
removed from the disable_functions line within the /etc/php5/cli/php.ini file. This may also affect other
Linux distribution support too if the vendor disables access to the PCNTL functions.
www.phoronix-test-suite.com
Gentoo Installation
Gentoo ebuild's for the Phoronix Test Suite have been created by users and can be currently found in
the Gentoo BugZilla.
Mandriva Installation
Phoronix Test Suite packages are available through Mandriva Cooker starting with the Mandriva Linux
2009 release.
OpenSolaris Installation
The Phoronix Test Suite core (pts-core) is supported on Solaris and OpenSolaris platforms, but some
features may not fully function. Additionally, the PTS External Dependencies feature is supported on
OpenSolaris using IPS (the Image Packaging System). However, not all test profiles are supported on
Solaris / OpenSolaris, and it may be in violation of your end-user agreement to perform such
benchmarks on the Sun Solaris operating system. Using the OpenSolaris Image Packaging System,
installing SUNWphp524 will provide PHP, PHP GD, and related dependencies. The Phoronix Test Suite
has also been tested on Oracle Solaris 11 Express, OpenIndiana, StormOS, and Nexenta Core
Platform.
BSD Installation
The Phoronix Test Suite also supports *BSD operating systems. However, like the Solaris support, not
all test profiles are compatible with BSD operating systems, but pts-core has been tested against
FreeBSD 7.x/8.x/9.x, NetBSD, PC-BSD 7/8/9, DragonFlyBSD 3.0/3.2/3.4/3.6/4.2, and OpenBSD
4.4/4.6. The Phoronix Test Suite will also work with Debian GNU/kFreeBSD.
For DragonFlyBSD, it's a matter of just using pkg_radd with php5, php5-json, php5-dom, and php5-zip
or pkgsrc. With DragonFlyBSD using dports, the command is pkg install php5 php5-dom php5-zip
php5-json php5-simplexml. Under FreeBSD/PC-BSD, PHP can be obtained from the php5 and
php5-extensions Ports collection.
Mac OS X Installation
The Phoronix Test Suite is fully supported on Apple's Mac OS X operating system as of Mac OS X 10.5
with improved support under Mac OS X 10.6. PHP ships with Mac OS X by default so it's simply a
matter of downloading the Phoronix Test Suite package, extracting it, and running the executable. For
tests that rely upon a compiler, Apple's XCode with GCC and LLVM can be utilized.
Windows Installation
The Phoronix Test Suite support on Microsoft Windows is in development and will function just fine, but
is not yet feature complete compared to the other operating systems support. Only a small subset of
test profiles, mostly related to graphics, are supported. In terms of the version support, right now the
www.phoronix-test-suite.com
Phoronix Test Suite is developed and tested solely against Microsoft Windows 7 x64 and Microsoft
Windows 8 x64.
At this time the Phoronix Test Suite client is dependent upon the php.exe executable being installed to
C:\Program Files (x86)\PHP\ or one of its subdirectories (see PHP installation notes above). Once this
requirement is met, simply download the Phoronix Test Suite package, extract it to a directory of your
choice, and run phoronix-test-suite.bat
The Phoronix Test Suite also uses CPU-Z for much of the hardware detection support on Windows and
is dependent upon CPU-Z being installed to C:\Program Files\CPUID\CPU-Z\cpuz.exe if you wish to
utilize this hardware reporting feature.
NOTE: because of lack of external dependencies support, it is necessary to manually download and
install the files for some test profiles, such as the Unigine graphics benchmarks. See Troubleshooting
for more information.
Facebook HipHop
The Phoronix Test Suite can use Facebook's HipHop HHVM virtual machine as an alternative to the de
facto PHP implementation. The Phoronix Test Suite has been tested against HHVM 2.0. If HHVM is
present on the system but not PHP, it will automatically be used by the Phoronix Test Suite.
Alternatively, the PHP_BIN environment variable can be set to point to an alternative hhvm binary.
The Phoronix Test Suite also supports the older version of Facebook HipHop that serves as a PHP to
C++ translator and compiler with GCC. This support though is primitive and not officially supported. To
compile the Phoronix Test Suite using HipHop/GCC, run find . -name "*.php" > files.list && hphp
--input-list=files.list -k 1 --log=3 --include-path="." --cluster-count=50 -v "AllDynamic=true" -v
"AllVolatile=true" from the root phoronix-test-suite/ directory. It can then be executed in the form of
/tmp/hphp_XXX/program -f pts-core/phoronix-test-suite.php system-info.
www.phoronix-test-suite.com
External Dependencies
The Phoronix Test Suite has a feature known as "External Dependencies" where the Phoronix Test
Suite can attempt to automatically install some of the test-specific dependencies on supported
distributions. If running on a distribution where there is currently no External Dependencies profile, the
needed package name(s) are listed for manual installation.
Below are a list of the operating systems that currently have external dependencies support within the
Phoronix Test Suite for the automatic installation of needed test files.
Amazon
Angstrom
Arch Linux
CentOS
ClearOS
ClearOS Core Server
Debian
DragonFlyBSD
Fedora
Fluxbuntu
FreeBSD
GNU KFreeBSD
Gentoo
Goobuntu
HP
Joli Cloud
Linaro
Linux Mint
MEPIS
Mac OS X
MacPorts
Mageia
Mandriva
MeeGo
Moblin
Mythbuntu
NetBSD
Nexenta Core
OLPC
OpenIndiana
OpenMandriva
www.phoronix-test-suite.com
OpenSolaris
OpenSuSE
Optware
Oracle Server
PCLinuxOS
PTS Desktop Live
PTS Linux Live
Palm
Pardus Linux
Red Hat Enterprise
Red Hat Enterprise Server
SUSE
SUSE Linux
Scientific
ScientificSL
Ubuntu
Zenwalk
gNewSense
www.phoronix-test-suite.com
Configuration
User Files & Folders
~/.phoronix-test-suite/user-config.xml
This is a per-user configuration file. Among the information stored here is the test options, locations for
storing files, and batch mode options. This file is formatted in XML.
~/.phoronix-test-suite/graph-config.json
This is a per-user configuration file for storing graph attributes. The adjustable options include HTML
hex color codes for different areas of the graph, dimensions of the graph, and font sizes. This file is
formatted in JSON.
~/.phoronix-test-suite/download-cache/
This directory contains test packages that have been downloaded for test profiles. For more information
on the download cache.
~/.phoronix-test-suite/installed-tests/
This directory is where tests are installed by default. Each test has its own directory within a
sub-directory of installed-tests/ based upon its OpenBenchmarking.org repository. In the test's folder is
a pts-install.xml file used for managing the installation.
~/.phoronix-test-suite/test-results/
This directory is where tests results are saved by default. Each saved file has its own directory. In the
saved directory is then a composite.xml file containing the useful results while in the test-X.xml files are
back-ups of the results.
~/.phoronix-test-suite/modules-data/
This is the directory where any Phoronix Test Suite modules should save any files to, within a
sub-directory of the module's name. The module configuration settings are also stored within this
directory.
~/.phoronix-test-suite/test-profiles/
This is the directory where test profiles are stored.
~/.phoronix-test-suite/test-suites/
www.phoronix-test-suite.com
Environment Variables
TEST_RESULTS_NAME
When this variable is set, the value will be used as the name for automatically saving the test results.
TEST_RESULTS_IDENTIFIER
When this variable is set, the value will be used as the test identifier when automatically saving the test
results.
TEST_RESULTS_DESCRIPTION
When this variable is set, the value will be used as the test results description when saving the test
results.
PRESET_OPTIONS
For setting any test option(s) from an environment variable rather than being prompted for the options
when running a test. Example: PRESET_OPTIONS="stream.run-type=Add" ./phoronix-test-suite
benchmark stream. Multiple options can be passed to this environment variable when delimited by a
semicolon.
SKIP_TESTS
If there are any test(s) to exempt from the testing process, specify them in this variable. Multiple tests
can be waived by delimiting each test identifier by a comma. A test hardware type (i.e. Graphics) can
also be supplied for skipping a range of tests.
RUN_TESTS_IN_RANDOM_ORDER
Setting this environment variable will cause the tests to be run in a random order.
SKIP_TESTING_SUBSYSTEMS
If you are running a set of benchmarks (namely a result file) but wish to skip some of the tests that don't
belong to a certain test type group, you can set the hardware types to test via this environment variable.
E.g. setting SKIP_TESTING_SUBSYSTEMS=Graphics will skip all test profiles to run that are not of the
graphics test group. Multiple types should be delimited by a comma.
PTS_MODULE_SETUP
This variable can be used to load Phoronix Test Suite module settings automatically when using the
www.phoronix-test-suite.com
www.phoronix-test-suite.com
ending.
FORCE_TIMES_TO_RUN
If you wish to override the number of times to run each test -- rather than the Phoronix Test Suite using
the number of times specified in each test profile -- this variable can be used.
FORCE_MIN_TIMES_TO_RUN
This is similar to the FORCE_TIMES_TO_RUN option but will only be used if the test profile's run count
is less than this defined value.
NO_FILE_HASH_CHECKS
To disable MD5/SHA256 check-sums from being checked when downloading test files, set this variable
to 1. This variable used to be known as NO_MD5_CHECKS, which is still honored but was changed to
NO_FILE_HASH_CHECKS to reflect other kind of file hash sum checks.
NO_HTTPS
Set this environment variable to 1 if you don't wish to use HTTPS download links for test profiles (or the
system/network lacks HTTPS support). When enabled, HTTPS links will then be done over HTTP.
PTS_DOWNLOAD_CACHE
While non-standard Phoronix Test Suite download caches can be specified within the user-config.xml
file, an additional directory to look for potential Phoronix Test Suite download files can be specified by
this variable.
GRAPH_HIGHLIGHT
If this variable is set with a valid test identifer from a result file whether you are using the refresh-graphs
command or any other related to the rendering of test results on a bar graph, the specified test
identifier's result will be highlighted in a different color than the other rendered test results. Multiple
identifiers can be specified when delimited by a comma.
VIDEO_MEMORY
If Phodevi fails to detect the system's video memory capacity or is incorrectly detected, the video
memory capacity (in MB) can be specified by this variable.
OVERRIDE_VIDEO_MODES
If Phodevi fails to detect all of the system's monitor video modes or a separate set of modes would be
preferred, the modes can be specified in this variable. Example:
www.phoronix-test-suite.com
www.phoronix-test-suite.com
General Information
Frequently Asked Questions
Q: May I use the Phoronix Test Suite when running benchmarks for my own publication or blog?
Are there any publishing restrictions?
A: Anyone is more than welcome to use the Phoronix Test Suite for their own publication or purpose.
While the Phoronix Test Suite came out of our internal test tools for carrying out Linux hardware
reviews at Phoronix.com, we invite other hardware review web-sites, technology journals, and
independent publications to use our software too. While not required, we would just kindly ask that you
mention in your review/article that the Phoronix Test Suite was used for carrying out your testing, and
ideally to link to www.phoronix-test-suite.com so that your readers will know where to obtain the
software if they are interested in running the tests. You are also more than welcome to upload your
results to OpenBenchmarking.org so that others may compare their results against yours in an easy
manner.
We also try to make the Phoronix Test Suite easy-to-use by independent publications. For example, if
you would like to watermark your web-site's URL into the graphs containing your test results, that can
be easily modified in ~/.phoronix-test-suite/graph-config.json. The colors and other graph settings are
also stored in this XML file. If you are a publication and run into any issues with the Phoronix Test Suite
or have a feature request, please let us know.
A partial list of other publications using the Phoronix Test Suite can be found in this forum thread.
Q: Why does the Phoronix Test Suite not use my distribution's package management system for
acquiring all needed packages?
A: The tests themselves are generally downloaded from source and built locally on the machine, rather
than fetching any distribution-specific packages. This is done to ensure more comparable results across
operating systems / releases, etc. The distribution packager could be applying a number of unknown
patches to the software, building the software with unique build options, or making other changes to the
software that could skew the results.
Q: Besides being a developer, documentation writer, or having any other unique technical
abilities, how else can I contribute to the Phoronix Test Suite?
A: Independent code contributions are very welcome as well as creating your own test profiles and
suites. We also appreciate any feedback, comments, or other ideas either by emailing us, posting on
the forums, or sending a message to the mailing list. You can also see this (outdated) forum thread.
Q: Do you offer technical support for the Phoronix Test Suite
www.phoronix-test-suite.com
A: Paid, professional support is available and is done via our commercial services. We also offer
Phoromatic licenses for use within a corporate intranet and other custom services. Free, community
support is offered via our mailing list, IRC channel (#phoronix on FreeNode.net, and the Phoronix
Forums.
Q: May I put the Phoronix Test Suite logo on my company's web-site or on my product
packaging?
A: Contact us for licensing information and details regarding the Phoronix Certification & Qualification
Suite.
Q: How often is the Phoronix Test Suite updated?
A: We provide major updates on a quarterly basis with an occasional point release to fix outstanding
bugs or address other issues. The latest work going into the Phoronix Test Suite is accessible via our
Git repository at GitHub.com/phoronix-test-suite.
Running
- When running a test in batch mode (through the use of the batch-run or batch-benchmark options)
that normally has end-user options (such as the sub-test to run or resolution), the Phoronix Test Suite
will run the test with each unique combination of options possible, if configured appropriately.
- When running a test where you are prompted to enter any test options, multiple selections can be
performed -- which will result in multiple test runs for each combination of the selected option(s) -- by
separating each intended test option / number with a comma.
- When being prompted for the test identifier or the file name for saving the results, several user
www.phoronix-test-suite.com
Troubleshooting
- If a test profile fails immediately after starting, check the test profile's directory in
www.phoronix-test-suite.com
~/.phoronix-test-suite/installed-tests/ to confirm that the needed files are present. On platforms without
External Dependencies support (Windows), it may be necessary to download the files manually and
place them in this directory. If this is the case, you will notice that the "Downloading" phase of test
installation completes instantly.
- Inspect the scripts inside the above test profile's directory and confirm that directories or search paths
for the test correspond to those on your system
- Try running the test profile with the debug-benchmark command, or reinstalling with the debug-install
command and make note of any unusual output.
Configuration
- The user configuration options for the Phoronix Test Suite are stored in
~/.phoronix-test-suite/user-config.xml. The batch mode options are also stored within this file and those
can be adjusted by running phoronix-test-suite batch-setup.
- The colors, size, and other attributes for the graphs found within the Phoronix Test Suite Results
Viewer can be modified via the file ~/.phoronix-test-suite/graph-config.json.
Module Writing
- By writing a Phoronix Test Suite module, you can easily extend the functionality of the Phoronix Test
Suite. Some examples are being able to email the results upon completion, controlling the system's
screensaver, updating a text LCD panel with the current test status, etc.
www.phoronix-test-suite.com
www.phoronix-test-suite.com
www.phoronix-test-suite.com
Go Tests pts/go
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where
the test profile is specified via an internal tag as testing go.
www.phoronix-test-suite.com
www.phoronix-test-suite.com
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where
the test profile is specified as being compatible with the Windows Operating System.
www.phoronix-test-suite.com
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where
the test profile is specified as being a Utility software test.
www.phoronix-test-suite.com
Component Testing
Compiler Testing & Masking
A majority of the test profiles provided by OpenBenchmarking.org to the Phoronix Test Suite are
source-based tests. Relying upon the upstream source-code for each program under test allows for the
tests to be easily brought to new platforms and architectures, avoids any out-of-tree / non-default
packaging differences by different distributions and operating systems, and to allow the Phoronix Test
Suite user to easily test new compilers and/or compiler options. For the source-based tests, the
Phoronix Test Suite relies upon a compiler (e.g. GCC, LLVM/Clang, Sun Studio, Open64, et al) being
present on the system under test. The Phoronix Test Suite does respect CC/CXX environment
variables and test profiles are expected to honor CFLAGS/CXXFLAGS and other compiler settings.
As of Phoronix Test Suite 3.8, a compiler masking method is utilized for logging compiler options and
other settings with each test profile installation. Prior to installing an open-source test, the Phoronix Test
Suite determines the intended compiler to be used based upon the pre-set environment variables or the
pre-set compiler(s) within the PATH environment variable. The Phoronix Test Suite then masks the
compiler to ensure that any options/flags submitted to the compiler are first passed through pts-core so
that they can be logged for later use, then is linked to the original, intended compiler. Additionally, other
compiler binary names of the same type are blacklisted to prevent their un-intended use (i.e. if a test
profile has hard-coded gcc in its build script, but clang is set as the compiler via CC, a sym-link will
automatically be created from gcc to the masked clang for the duration of its test installation).
The logged compiler data is then used by the Phoronix Test Suite following the test execution process
for automated result analysis. If there is a detected change in compiler settings, the differences are
automatically reported to the test result graphs. Additionally, key compiler information (e.g. the compiler
optimization level and key libraries that were linked at compile-time) is reported as a footnote on result
graphs. The Phoronix Test Suite handles all of this in a fully automated manner; test profiles require no
changes to take advantage of these compiler-reporting capabilities.
Separately, the Phoronix Test Suite attempts to automatically log the system compiler's build
configuration (i.e. GCC's gcc -v "Configured with") output. If the Phoronix Test Suite detects there is a
compiler build configuration change between test runs in a result file, it will report each compiler's build
configuration to the system information table within the results viewer. Reported to the table is a
reduced view of the build configuration options, with less relevant items being stripped away from this
view to reduce verbosity. Upon clicking the text, the raw compiler information output can be viewed in
full.
www.phoronix-test-suite.com
When any disk tests are executed, the Phoronix Test Suite will attempt to log the mount options and
scheduler of the disk/partition being used for testing. This information is subsequently displayed within
the system information table. If the scheduler / mount options are maintained the same throughout all
test runs, only a single line is displayed otherwise the options for each test run will be automatically
displayed. The file-system in use is always captured and shown in the system information table.
www.phoronix-test-suite.com
Phoromatic
Overview
The Phoronix Test Suite now features its own built-in Phoromatic server and client implementations.
See the phoromatic.pdf / phoromatic.html documentation for more information on this advanced
capability.
www.phoronix-test-suite.com
www.phoronix-test-suite.com
PTS Netbook Live is designed for netbooks and nettop computers with an Intel Atom processor.
www.phoronix-test-suite.com
Development Credits
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. The principal architects of the Phoronix Test Suite are Michael Larabel and Matthew Tippett.
The phoronix-test-suite, pts_Graph, Phoromatic, Phodevi, tandem_Xml, and nye_Xml are some of the
related open-source projects provided by Phoronix Media.
www.phoronix-test-suite.com