Checks each test profile to determine the status of the url download.
If successful, a check between the new download and the stored test-profile data
is performed to detect any differences in the filesize, MD5 and SHA256 checksums.
Current http status and any errors are output to a JSON file.
HTTP 302 redirections are also reported.
This test utilizes forking to prevent bottlenecks.
A file for a given url is downloaded once and reused for future tests thus preventing
multiple downloads of the same file.
The SPHardwareDataType system profiler query only returns a
marketing string that has no use for us. Use something else when possible.
I was thinking about doing something similar with the flags
(machdep.cpu.features), but the current code is toooo Linux-centric to
play with.
Currently, giving a pre-defined port to the result-viewer does not work:
[PROBLEM] Port N is already in use by another server process.
Since fsockopen returns false on an error [1], the queries must be inverted.
[1] https://www.php.net/manual/de/function.fsockopen.php
pts-core: Split OpenBenchmarking.org upload code into pts_openbenchmarking_upload file and allow it to be removed if wanting to strip out upload support
This change adds a new variable loop_run_pos for tracking the current loop that the
test run manager is on. It then uses this new variable in
get_test_run_position() so that different pts display modes will be able
to accurately report how far into a run utilizing TOTAL_LOOP_COUNT the
test run manager is.
phodevi: Add support for reporting ACPI Platform Profile and INT340x Workload Hint
Phoronix Test Suite 10.2.0 Milestone 3
21 December 2020
pts-core: Add debug-unhandled-dependencies option
pts-core: Default to 2.5% std dev threshold default on new installs
pts-core: BSD external dependency updates
pts-core: Various refinements to the text user interface
pts-core: When a test profile hits a failed download / broken mirror, report that URL to OpenBenchmarking.org
phodevi: Don't restore the Phodevi cache if the /etc/machine-id changed (or /etc/hostname as fallback)
Phoronix Test Suite 10.2.0 Milestone 2
6 December 2020
pts-core: Transition to new JSON-based data format for managing test install metadata while maintaining backwards compatibility with prior XML format
pts-core: Begin tracking test run-times per-hash (all configured test options) for more detailed time tracking and in turn time estimates on subsequent runs
pts-core: Increase compression factor when uploading benchmark results
pts-core: Last minute fixes for PHP 8.0 compatibility
phodevi: Report if CPUFreq Boost enabled/disabled
turbostat: Add TurboStat module to easily generate turbostat dumps on a per-test basis to log files
phoromatic: Much faster web viewer performance especially with large databases
Phoronix Test Suite 10.2.0 Milestone 1
21 November 2020
pts-core: Log lock_stat, config.gz, dmidecode to system logs
pts-core: Only show Apple options when running on macOS
pts-core: Add extra safeguard around FORCE_TIMES_TO_RUN for disabling dynamic run count
ob_auto_compare: Intelligently choose more relevant reference results
phodevi: macOS CPU temperature monitoring support
phodevi: Support for reading WattsUp Pro power meter data directly without utility using WATTS_UP_METER=<USB TTY>
phodevi: Report Google Compute Engine machine type as part of motherboard string
phodevi: Add dumpe2fs to system logs when running on EXT4 and root
phodevi: Add block size reporting
phodevi: CPU power reporting for Ampere Altra
phodevi: Various Ampere Altra hardware detection/reporting improvements
phodevi: Support reading CPU package power consumption on macOS using powermetrics
Phoronix Test Suite 10.0.1
21 October 2020
pts-core: Fix for older versions of PHP such as in RHEL7
pts-core: Add Thermald version reporting to system table when active
phodevi: Detection improvements for new CPUs
phodevi: Avoid "11th Gen Intel" CPU string
phodevi: Update for NVMe drive reporting with KIOXIA, Toshiba sometimes not reporting their brand first
Phoronix Test Suite 10.0.0
13 October 2020
pts-core: Ensure any post-run script is triggered still under halt-testing/skip-test conditions
pts-core: Allow batch processing of performance per dollar metrics
phodevi: Add Intel AMX presence detection
phodevi: Add detection for Intel Alder Lake, Jasper Lake, Sapphire Rapids, and others
phoromatic: Ensure Windows tests get displayed even if running the Phoromatic Server on Linux
flush_caches: Add module to flush system caches between runs
test_timeout: Add module to quit a test run if it exceeds a predefined time limit or 'auto' determination
Phoronix Test Suite 10.0.0 Milestone 3
1 October 2020
pts-core: Don't show Vulkan options if Vulkan support is known to be unavailable/broken
pts-core: Add OptionSelect tag support within test suite definitions
pts-core: Allow * wildcard match in FileCheck handling within external dependency XML
pts-core: Add "OS" TestType
pts-core: Various external dependency updates
pts-core: Continued tweaking to the analytics engine
phodevi: Add Neoverse N2, Cortex-X1 detection and other Arm CPU updates
pts_Graph: Various improvements
Phoronix Test Suite 10.0.0 Milestone 2
12 September 2020
pts-core: Honor NO_COLOR environment variable for disabling terminal coloring
pts-core: Allow launching just the result viewer from systemd (phoronix-result-server.service)
pts-core: Result viewer UI tweaks
pts-core: Minor fixes
pts-core: Add RequiresRootInstall test profile option
pts-core: Result file text output tweaks
pts-core: More robust test result parsing in certain time formats
pts-core: Split the dynamic result viewer into its own embed class for result file handling to allow for easy re-use by OpenBenchmarking, Phoromatic, etc
pts-core: Various changes for supporting the new OpenBenchmarking.org infrastructure
pts_Graph: Add histogram type
phodevi: CPU core name / family detection to friendly strings (OpenBenchmarking.org driven)
phodevi: Report core name via system-info command
phodevi: Various storage HDD/SSD detection reporting improvements
pts-core: Refactor test installation logs handling
pts-core: More verbose reporting of system/external dependency solving status
pts-core: Get the modern result viewer working on Windows
pts-core: Support for showing test logs from the result viewer
pts-core: Support for showing install logs from the result viewer
pts-core: PDF output improvements
pts-core: Fix for some suites not showing up on list-suites sub-command
pts-core: Report "Test Suites Containing This Test" in the info sub-command on tests
pts-core: On PDF export allow showing geometric means of tests based on their test suite connections
pts-core: Add intersect sub-command for showing tests common between multiple results/suites
Phoronix Test Suite 9.4.0 Milestone 2
5 February 2020
pts-core: Add config options allowing to modify or delete result files from the result viewer
pts-core: Allow deleting results from the result viewer
pts-core: Allow editing result file information from result viewer
pts-core: Allow deleting results (graphs) from result file in result viewer
pts-core: Add ability to annotate (comment) on result graphs within the result viewer
pts-core: Support converting graphs to PNG/PDF with Inkscape or svg-convert when PHP GD is not installed/enabled
pts-core: Add Persistent Memory disk targets for disk test
Phoronix Test Suite 9.4.0 Milestone 1
13 January 2020
pts-core: Allow test profile test options to expose more helper information strings
pts-core: External dependency updates
pts-core: When a test fails to install due to linker error, try to run that missing library through the external dependency handler to hint at the name
pts-core: When a test fails to install due missing header file, try to run that missing library through the external dependency handler to hint at the name
phodevi: Convert large RAM capacity basic strings into GB rather than large MB
phodevi: Add support for Linux 5.6+ drivetemp kernel module for ATA drive temperatures
Phoronix Test Suite 9.2.1
11 December 2019
pts-core: Fix for Debian packaging generator
pts-core: FIx for install script that could lead to Phoromatic Server instance not fully launching
Phoronix Test Suite 9.2.0-Hurdal
3 December 2019
pts-core: Fix for sensor-driven result outputs (e.g. power)
pts-core: Clean up precision handling on graphs
pts-core: Add run-subset sub-command
pts-core: Add Clear Linux external dependencies handling for when not relying upon the Clear bundles that include all known dependencies
phodevi: More robust ACPI power_meter handling
phodevi: Support reading the NVMe drive temperature via HWMON on Linux 5.5+
phoromatic: Use the new shared result viewer settings handling in common with the dynamic result viewer
Phoronix Test Suite 9.2.0 Milestone 2
13 November 2019
pts-core: Drop auto-compare sub-command since currently buggy / too server resource intensive
pts-core: Add FORCE_MIN_DURATION_PER_TEST
pts-core: Don't sort geometric mean results when the only difference between result identifiers is numeric in nature
pts-core: Allow preserving the precision of the original workload under test if not overriden by test profile
pts-core: Record and report CPU microcode version in benchmark result file
system_monitor: Allow multiple PERFORMANCE_PER_SENSOR= to be delimited by comma
Phoronix Test Suite 9.2.0 Milestone 1
17 October 2019
pts-core: New possible external dependencies for gflags, clang, uuid, tclsh
pts-core: External dependencies updates for Windows
pts-core: Crash fix for macOS in regression from PTS 9.0.1 launcher change
Phoronix Test Suite 9.0.1-Asker
1 October 2019
pts-core: Fatal error fix for old PHP5 versions (RHEL 7) with pts_openbenchmarking_upload crash
pts-core: Set AllowResultUploadsToOpenBenchmarking = FALSE in enterprise-setup
ob_auto_compare: Show "since [date]" as part of the inline box plot
ob_auto_compare: Various tweaks/styling improvements to the inline box-plot display
phodevi: New cpu.peak-freq sensor for reporting just the highest CPU core frequency at that moment
Phoronix Test Suite 9.0.0-Asker
16 September 2019
pts-core: Add stress-batch-run sub-command for behavior like stress-run but no prompts for test options
pts-core: Allow plotting all individual run results as a line graph
pts-core: Allow showing pie charts of wins/losses of tests
pts-core: Add support for showing "new + updated tests" via the invalid command helper
pts-core: Allow accessing the new result viewer via localhost too rather than just 127.0.0.1
pts_Graph: Restore pie chart support from PTS 6.0 state when dropped
Phoronix Test Suite 9.0.0 Milestone 3
3 September 2019
pts-core: Add AllowResultUploadsToOpenBenchmarking user config option
pts-core: Split OpenBenchmarking.org upload code into pts_openbenchmarking_upload file and allow it to be removed if wanting to strip out upload support
pts-core: Add "ob-cache" local cache of tests/suites to help offline use-cases
pts-core: Add hdf5 to the external dependency list
pts-core: Add libxml2 to the external dependency list
Phoronix Test Suite 9.0.0 Milestone 2
22 August 2019
pts-core: New result viewer improvements
pts-core: Various fixes and code cleanups
phodevi: Add support for cpu.power sensor reading from Linux zenpower driver
Phoronix Test Suite 9.0.0 Milestone 1
25 July 2019
pts-core: Add 'expat' as possible external dependency
phodevi: Expand memory temperature sensor to work for some ARM SBCs
phodevi: Multi-monitor detection improvements
phodevi: Add support for gpu.memory-usage sensor with new AMDGPU mem_busy_percent sysfs interface
system_monitor: Add PERFORMANCE_PER_SENSOR= support for performance-per-(arbitrary sensor) rather than just supporting perf-per-Watt
ob_auto_compare: Show other results in result file on box plot
Phoronix Test Suite 8.8.0 Milestone 2
27 March 2019
pts-core: On new installs set 3.00% as deviation for increasing dynamic run count rather than 3.50%
pts-core: Add FORCE_MIN_TIMES_TO_RUN_CUTOFF= environment variable to toggle cutoff for FORCE_MIN_TIMES_TO_RUN behavior
pts-core: Add FORCE_TIMES_TO_RUN_MULTIPLE
pts-core: Add strict-benchmark option for enabling various options to ensure stricter behavior about the number of times to run each benchmark
pts-core: Add cpu-physical-threads / cpu-threads / auto-executable auto test run options
phodevi: CPU-therm reporting via sysfs for CPU core temp
phodevi: GPU-therm reporting via sysfs for GPU core temp
Phoronix Test Suite 8.8.0 Milestone 1
16 March 2019
pts-core: Allow FORCE_TIMES_TO_RUN to override debug-run/debug-benchmark single run behavior
pts-core: Various fallbacks/workarounds for those wanting to (unofficially) use PTS on Windows 8.1
pts-core: Other small tweaks and optimizations
pts-core: Fixes an odd scenario where on Windows after 2 runs, further runs of that test profile for current run could fail in select (random) instances
pts-core: Write out system notes for each system when generating PDF result output
pts-core: CSV output improvements
pts-core: Add result-file-raw-to-csv for dumping the raw/individual benchmark result run data
pts_Graph: Condensing improvements for large graphs
pts_Graph: Various formatting improvements
phodevi: Intel GPU reporting improvements
phodevi: BIOS version reporting support extended to Windows
phodevi: ipmitool DMCI power sensor reporting for at least some POWER servers
Phoronix Test Suite 8.6.1-Spydeberg
21 February 2019
pts-core: Dynamically honoring the CLI terminal width (no longer cache the value on Linux/BSD/macOS)
pts-core: BSD external dependency updates
ob_auto_compare: Minor formatting updates
Phoronix Test Suite 8.6.0-Spydeberg
5 February 2019
pts-core: Other small tweaks and fixes
pts-core: Fix for "/installed" virtual suite not including the proprietary/commercial tests that are installed
ob_auto_compare: Allow showing more results in the embedded percentile graphs
Phoronix Test Suite 8.6.0 Milestone 3
27 January 2019
pts-core: Better handling on Windows when there are space(s) in the paths
pts-core: Add __event_post_run_stats module hook
pts-core: Inline display of result distributions from OpenBenchmarking.org on applicable results
pts-core: Don't try to run tests from result file(s) or suite(s) that were not installed
pts-core: More accurate time reporting when result files are passed to `phoronix-test-suite estimate-run-time`
phodevi: Better reporting of NVMe drive strings on BSDs
Phoronix Test Suite 8.6.0 Milestone 2
19 January 2019
pts-core: Update Mac OS X to macOS references
pts-core: Add result-file-stats sub-command to show more test result statistics
pts-core: Show geometric mean and harmonic mean data at end of benchmarking process when relevant as part of post-run stats
pts-core: Improved formatting of file download text user interface for downloading of dependencies on Microsoft Windows
pts-core: Fix Loop 'Test i of n' Reporting
pts-core: A few warning fixes for PHP 7.3+
pts-core: External dependency handling support for OpenMandriva Lx 4.0 (transitioned from urpmi to DNF)
phodevi: Report Windows Subsystem for Linux (WSL) to the system layer string
Phoronix Test Suite 8.6.0 Milestone 1
7 January 2019
pts-core: No longer clear test profile identifiers on secondary saved results
pts-core: Add compare-results-to-baseline sub-command for comparing one result file (baseline) against a set of results for text look at relative perf
pts-core: Minor fixes
pts-core: Show wins and losses summary after testing on large result files
pts-core: On two-way result files, after test completion show comparison of current result against previous result (baseline)
pts-core: Add ShowPostRunStatistics user configuration XML option to toggle whether various test statistics are printed at the end of testing
pts-core: Add recently-added-tests sub-command to show newly added test profiles / alternative to openbenchmarking-changes/recently-updated-tests
pts-core: Allow outputting line graphs to terminal interface as basic box plot graphs
phodevi: Improve Linux multiple network device reporting
phodevi: LXQt desktop version reporting
phodevi: Update for Microsoft Windows Server 2019
system_monitor: Allow outputting system monitor graphs to terminal interface inline
- NVIDIA make use of UsedDedicatedGPUMemory as new GPU sensor
- Clean up all the WebSocket code and make it fit to spec
- Incremental/streaming result uploads support
- Check with Phodevi's parsers what other tools support JSON outputs - e.g. http://karelzak.blogspot.com/2015/06/json-output-for-basic-tools.html for cleaner parsing
- Improve titles on tables like in: http://openbenchmarking.org/result/1603172-GA-AMDTONGA973
### PTS-GRAPH ###
- Rotated text alignment for some PNG graphics is sometimes off by 90/180 degrees compared to SVG, e.g. http://openbenchmarking.org/s/Compiler
### OPENBENCHMARKING.ORG ###
- Shorten long change-logs on test profile pages - e.g. http://openbenchmarking.org/test/pts/hpcc
- Implement WebSocket security - add the password prompts from ~/.phoronix-test-suite/user-config.xml, etc
- HTTPS support
- Ensuring only one session at a time, at least for benchmarking
- Handle test installations and external dependencies (prompting for root password handling?)
- Porting more of the web-interface code to the new JavaScript + WebSocket design rather than original PHP design [Originally with the 5.0 UI design it wasn't settled for mostly JS + WebSocket but some of the original code is with a traditional PHP-based + web server design... so slowly move over to newer design.]
### PHOROMATIC ####
- Implement the complementary WebSocket communication to HTTP pulls
- Ensure sane validating of more user input / resource uploads
- Hook up TriggerTarget for allowing event.php to optionally specify a sub-set of systems/groups to target for a given trigger
- Clean up the code and modularize more of the code into functions
phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source platform for performing testing and performance evaluation.
.SHSYNOPSIS
@@ -6,7 +6,7 @@ phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source plat
.br
.Bphoronix-test-suitebenchmark[test|suite]
.SHDESCRIPTION
The **Phoronix Test Suite** is the most comprehensive testing and benchmarking platform available for Linux, Solaris, 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.
The **Phoronix Test Suite** is the most comprehensive testing and benchmarking platform available for Linux, Solaris, macOS, Windows, 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.
.SHOPTIONS
.TP
.SHSYSTEM
@@ -45,12 +45,12 @@ This option will create a download cache for use by the Phoronix Test Suite. The
This option will permanently remove a installed test by the Phoronix Test Suite.
.TP
.SHTESTING
.Bauto-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 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.
This option will install the selected test(s) (if needed) and will proceed to run the test(s). This option is equivalent to running phoronix-test-suite with the install option followed by the run option. Multiple arguments can be supplied to run additional tests at the same time and save the results into one file.
This option will provide estimates for test run-time / length.
.TP
@@ -63,12 +63,24 @@ This option will run the selected test(s).
.Brun-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.
This option will run the selected test(s) but prompt the user when passing any test suites or result files what subset / test(s) contained within there to run rather than running all passed tests/suites/results.
.TP
.Brun-tests-in-suite[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.
This option will run the passed tests/suites in the multi-process stress-testing mode while behaving by the Phoronix Test Suite batch testing characteristics. The stress-batch-run mode is similar to the stress-run command except that for any tests passed to it will run all combinations of the options rather than prompting the user for the values to be selected.
This option will run the passed tests/suites in the multi-process stress-testing mode. The stress-run mode will not produce a result file but is rather intended for running multiple test profiles concurrently to stress / burn-in the system. The number of tests to run concurrently can be toggled via the PTS_CONCURRENT_TEST_RUNS environment variable and by default is set to a value of 2.
This option is equivalent to the `benchmark` option except it enables various options to run benchmarks an extended number of times for ensuring better statistical accuracy if enforcing strict controls over the data quality, in some cases running the benchmarks for 20+ times.
This option is equivalent to the `run` option except it enables various options to run benchmarks an extended number of times for ensuring better statistical accuracy if enforcing strict controls over the data quality, in some cases running the benchmarks for 20+ times.
This option and its arguments are equivalent to the benchmark option, but the process will be run in the Phoronix Test Suite batch mode.
@@ -119,19 +131,28 @@ This option will list the OpenBenchmarking.org repositories currently linked to
.Bopenbenchmarking-uploads
This option will list any recent test result uploads from the system's IP address to OpenBenchmarking.org.
.TP
.Brecently-added-tests
This option will list the most recently added (newest) test profiles.
.TP
.Bupload-result[TestResult]
This option is used for uploading a test result to OpenBenchmarking.org.
.TP
.Bupload-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.
.TP
.Bupload-test-suite
.Bupload-test-suite[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.
.TP
.SHINFORMATION
.Bcheck-tests[Test]
This option will perform a check on one or more test profiles to determine if there have been any vendor changes to the filename, filesize, url location, md5 and sha256 checksums.
.TP
.Binfo[Test|Suite|OpenBenchmarkingID|TestResult]
This option will show details about the supplied test, suite, virtual suite, or result file.
This option will print the test profiles present in all passed result files / test suites. Two or more results/suites must be passed and printed will be all of the common test profiles.
.TP
.Blist-all-tests
This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories. Unlike the other test listing options, list-all-tests will show deprecated tests, potentially broken tests, or other tests not recommended for all environments. The only check in place is ensuring the test profiles are at least compatible with the operating system in use.
.TP
@@ -177,6 +198,9 @@ This option will list all available test profiles that are available from the en
.Bsearch
This option provides command-line searching abilities for test profiles / test suites / test results. The search query can be passed as a parameter otherwise the user is prompted to input their search query..
.TP
.Btest-to-suite-map
This option will list all test profiles and any test suites each test belongs to.
.TP
.SHASSETCREATION
.Bbuild-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.
@@ -202,6 +226,9 @@ This will download the selected test file(s) to the Phoronix Test Suite download
.Binspect-test-profile[Test]
This option can be used for inspecting a Phoronix Test Suite test profile with providing inside details on test profiles for debugging / evaluation / learning purposes.
.TP
.Brebuild-test-suite[Suite]
This option will regenerate the local test suite XML file against the OpenBenchmarking.org specification. This can be used to clean up any existing XML syntax / styling issues, etc.
.TP
.Bresult-file-to-suite[TestResult]
This option will guide the user through the process of generating their own test suite, which they can then run, that is based upon an existing test results file.
.TP
@@ -211,34 +238,46 @@ This option can be used for validating a Phoronix Test Suite result file as bein
.Bvalidate-test-profile[Test]
This option can be used for validating a Phoronix Test Suite test profile as being compliant against the OpenBenchmarking.org specification.
.TP
.Bvalidate-test-suite
.Bvalidate-test-suite[Suite]
This option can be used for validating a Phoronix Test Suite test suite as being compliant against the OpenBenchmarking.org specification.
.TP
.SHRESULTMANAGEMENT
.Banalyze-all-runs[TestResult]
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.
.Banalyze-run-times[TestResult]
This option will read a saved test results file and print the statistics about how long the testing took to complete.
.TP
.Bauto-sort-result-file[TestResult]
This option is used if you wish to automatically attempt to sort the results by their result identifier string.
This option will allows you to specify a result as a baseline (first parameter) and a second result file (second parameter) that will offer some analysis for showing how the second result compares to the first in matching tests.
.TP
.Bcompare-results-two-way[TestResult]
This option will allows you to specify a result file and from there to compare two individual runs within that result file for looking at wins/losses and other metrics in a head-to-head type comparison.
.TP
.Bedit-result-file[TestResult]
This option is used if you wish to edit the title and description of an existing result file.
.TP
.Bextract-from-result-file[TestResult]
This option will extract a single set of test results from a saved results file that contains multiple test results that have been merged. The user is the prompted to specify a new result file name and select which result identifier to extract.
.TP
.Bkeep-results-in-result-file[TestResult]
This option is the inverse of the remove-results-from-result-file sub-command. If you wish to remove all results but those listed from a given result file, this option can be used. The user must specify a saved results file and then they will be prompted to provide a string to search for in keeping those results in that given result file but removing all other data.
.TP
.Bmerge-results[TestResult]...
This option will manually merge multiple sets of test results generated by the Phoronix Test Suite.
.TP
.Brefresh-graphs[TestResult]
This option will re-render and save all result graphs within a saved file. This option can be used when making modifications to the graphing code or its color/option configuration file and testing the changes.
.TP
.Bremove-from-result-file[TestResult]
This option is used if there is a set of test results you wish to remove/delete from a saved results file. The user must specify a saved results file and then they will be prompted to select the results identifier associated with the results they wish to remove.
.TP
.Bremove-result[TestResult]
This option will permanently remove the saved file set that is set as the first argument.
.TP
.Bremove-result-from-result-file[TestResult]
This option is used if there are test results (benchmarks) to be dropped from a given result file. The user must specify a saved results file and then they will be prompted to select the tests/benchmarks to remove.
.TP
.Bremove-results-from-result-file[TestResult]
This option is used if there are test results (benchmarks) to be dropped from a given result file. The user must specify a saved results file and then they will be prompted to provide a string to search for in removing those results from that given result file.
.TP
.Bremove-run-from-result-file[TestResult]
This option is used if there is a set of test results you wish to remove/delete from a saved results file. The user must specify a saved results file and then they will be prompted to select the results identifier associated with the results they wish to remove.
.TP
.Brename-identifier-in-result-file[TestResult]
This option is used if you wish to change the name of the identifier in a test results file that is shown in the Phoronix Test Suite Results Viewer and the contained graphs.
.TP
@@ -248,6 +287,9 @@ This option is used if you wish to change the name of the saved name of a result
.Breorder-result-file[TestResult]
This option is used if you wish to manually change the order in which test results are shown in the Phoronix Test Suite Results Viewer and the contained graphs. The user must specify a saved results file and then they will be prompted to select the results identifiers one at a time in the order they would like them to be displayed from left to right.
.TP
.Bresult-file-raw-to-csv[TestResult]
This option will read a saved test results file and output the raw result file run data to a CSV file. This raw (individual) result file output is intended for data analytic purposes where the result-file-to-csv is more end-user-ready.
.TP
.Bresult-file-to-csv[TestResult]
This option will read a saved test results file and output the system hardware and software information along with the results to a CSV output. The CSV (Comma Separated Values) output can then be loaded into a spreadsheet for easy viewing.
.TP
@@ -263,8 +305,8 @@ This option will read a saved test results file and output the system hardware a
.Bshow-result[TestResult]
Open up the test results in the Phoronix Test Suite Result Viewer or on OpenBenchmarking.org.
.TP
.Bwinners-and-losers[TestResult]
This option is used if you wish to analyze a result file to see which runs produced the most wins/losses of those result identifiers in the saved file.
.Bworkload-topology[TestResult]
This option will read a saved test results file and print the test profiles contained within and their arrangement within different test suites for getting an idea as to the workload topology/make-up / logical groupings of the benchmarks being run.
.TP
.SHOTHER
.Bcommands
@@ -287,7 +329,7 @@ This option will display the Phoronix Test Suite client version.
.TP
.SHMODULES
.Bauto-load-module
This option can be used for easily adding a module to the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.
This option can be used for easily adding a module to the AutoLoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.
.TP
.Blist-modules
This option will list all of the available Phoronix Test Suite modules on this system.
@@ -302,7 +344,7 @@ This option will allow you to configure all available end-user options for a Pho
This option can be used for debugging a Phoronix Test Suite module.
.TP
.Bunload-module
This option can be used for easily removing a module from the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what modules are automatically loaded on start-up of the Phoronix Test Suite.
This option can be used for easily removing a module from the AutoLoadModules list in the Phoronix Test Suite user configuration file. That list controls what modules are automatically loaded on start-up of the Phoronix Test Suite.
.TP
.SHUSERCONFIGURATION
.Benterprise-setup
@@ -320,11 +362,24 @@ This option can be used for resetting the Phoronix Test Suite user configuration
.Buser-config-set
This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.
.TP
.SHWEB/GUISUPPORT
.Bgui
Launch the Phoronix Test Suite HTML5 web user-interface in the local GUI mode (no remote web support) and attempt to auto-launch the web-browser. THIS FEATURE IS CURRENTLY EXPERIMENTAL AND NO LONGER ACTIVE DEVELOPMENT. See Phoronix Test Suite Phoromatic as an alternative web UI approach.
.SHRESULTANALYSIS
.Bexecutive-summary[TestResult]
This option will attempt to auto-generate a textual executive summary for a result file to highlight prominent results / averages.
.TP
.Bresult-file-confidence[TestResult]
This option will read a saved test results file and display various statistics on the confidence of the results with the standard deviation, three-sigma values, and other metrics while color-coding "passing" results in green.
.TP
.Bresult-file-stats[TestResult]
This option is used if you wish to analyze a result file by seeing various statistics on the result data for result files containing at least two sets of data.
.TP
.Bwins-and-losses[TestResult]
This option is used if you wish to analyze a result file to see which runs produced the most wins/losses of those result identifiers in the saved file.
.TP
.SHPHOROMATIC
.Bstart-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.
.TP
.SHRESULTVIEWER
.Bn
_
.TP
@@ -341,5 +396,5 @@ https://www.phoronix.com/
.br
https://www.phoronix.com/forums/
.SHAUTHORS
Copyright 2008 - 2018 by Phoronix Media, Michael Larabel.
Copyright 2008 - 2021 by Phoronix Media, Michael Larabel.
<p>This command will simply download all of the needed test files for the tests/suites passed to the sub-command. Alternatively you could also pass pts/all to cache all tests. It's important though to just cache the tests/suites you'll be using on your network. This will generate the test file download cache by default to <em>~/.phoronix-test-suite/download-cache/</em> or <em>/usr/share/phoronix-test-suite/download-cache/</em> depending upon your write permissions. You can always run this command later with more test files. Alternatively, if you already have a number of tests installed on the system, simply running "phoronix-test-suite make-download-cache" will generate the cache based upon the currently installed tests.</p>
<p>This command will cache as much of the OpenBenchmarking.org meta-data as possible for test profiles and test suites. After the above commands, the Phoromatic Server should no longer need a persistent Internet connection.</p>
<p>Proceed to start the Phoromatic Server and operate as normal.</p>
<p>For the test clients without an Internet connection, as long as they're able to reach the Phoromatic Server, the Phoromatic Server should be able to automatically serve all of the needed test files download cache and OpenBenchmarking.org meta-data to the systems locally.</p>
<h3>Use Case C: Phoromatic Across The Internet</h3>
Phoromatic is a remote management system for the Phoronix Test Suite. Phoromatic allows the automatic (hence the name *Phoro-matic* ) 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. The test results are then available from this central, secure location.
Phoromatic was originally introduced with Phoronix Test Suite 2.0 via Phoromatic.com as a project going back to 2008~2009. Phoromatic.com debuted as a hosted instance with the option of behind-the-firewall licensing for use within organizations. With Phoronix Test Suite 5.2 the model shifted to offer a local, open-source version of Phoromatic built into the Phoronix Test Suite code-base. Thanks to continued enterprise development, with Phoronix Test Suite 5.4 is now a fully-functioning, built-in version of Phoromatic that's open-source and can be used for behind-the-firewall testing without needing to push results to OpenBenchmarking.org and the ability to keep all results private.
Phoromatic in Phoronix Test Suite 5.4 also has the ability to support zero-conf network discovery using Avahi and the automatic distribution of needed test profiles/suites and test files. Phoronix Test Suite 5.4's Phoromatic is a significant breakthrough for open-source testing particularly those running this GPL benchmarking software within test labs and other large organizations.
### Features
Built atop the Phoronix Test Suite, Phoromatic offers many features for both enterprise and community/personal users:
#### Automated Scheduling
Whether it is every evening at 6:00PM, once every Thursday at 10:00AM or somewhere in between, Phoromatic can schedule tests to be run at user-defined intervals. The testing schedules can be updated through Phoromatic web interface. After the test(s) have run, the results will be immediately uploaded to Phoromatic.
#### Extensible
Any test profile or test suite that is compliant with the Phoronix Test Suite specification will work with Phoromatic. Phoromatic is able to leverage the hundreds of test profiles and test suites currently in the Phoronix Test Suite via OpenBenchmarking.org, along with any custom or proprietary test profiles you or your company utilize. Additionally, the Phoromatic interface allows the user to construct their own test suite(s).
#### Remote Testing
Once the test system is setup, all testing and management of that system can be done remotely. There is no need to execute Phoronix Test Suite commands locally using the GUI or command line version, but instead nearly all of the same features are accessible from the Phoromatic interface.
#### Multi-System Support
A single Phoromatic account is able to manage multiple test systems running the Phoronix Test Suite. Phoromatic supports grouping together test systems, tagging, and other features to support effectively managing many test systems. From the Phoromatic interface, installed system hardware and software from a given system can also be viewed.
#### Turn-Key Deployment
No additional software needs to be installed to support Phoromatic; all that's needed is Phoronix Test Suite 5.4 or later for full compatibility. New test systems can easily be synced with a given Phoromatic account by running a single command from the Phoronix Test Suite client.
#### Result Management
Test results are automatically uploaded to the Phoromatic account and remain private unless you opt to upload them to OpenBenchmarking.org. From the Phoromatic interface, results from multiple test systems can easily be compared and multiple results from the same systems can be used to track performance over time. There are also options to look at the statistical significance of the results and other features to efficiently and effectively analyze the system's performance.
#### Decentralized
Once the Phoronix Test Suite running on the Phoromatic Server has been able to cache all of the OpenBenchmarking.org test files and the needed files for each test, Phoromatic with any Phoronix Test Suite clients on your LAN can run fully decentralized without the need for a constant stream of OpenBenchmarking.org communication or Internet connection for that matter. (The only exception would be if your local systems don't have all their needed external dependencies and your system's package manager would need to install components like a compiler or necessary system libraries.
#### Fully Open-Source
Phoromatic is now fully open-source within the Phoronix Test Suite code-base for fostering greater development and new capabilities. Patches are welcome and Phoronix Media is available to provide commercial support and custom engineering services around Phoromatic and the Phoronix Test Suite.
### Phoromatic Server Setup
Phoromatic is built into the Phoronix Test Suite code-base and should be found in all packaged versions of the **phoronix-test-suite** . Starting the Phoromatic Server entails running phoronix-test-suite start-phoromatic-server after configuring the server information within *~/.phoronix-test-suite/user-config.xml* . The Phoromatic Server can with or without root permissions depending upon your firewall and the port numbers you wish to use for the server.
On the "client side", any up-to-date version of the Phoronix Test Suite can automatically communicate with the Phoromatic Server. If Avahi support is available (commonly in Linux distribution repositories as _avahi-tools_ ), there should be zero-conf discovery if the Phoromatic Server and client systems are on the same LAN. If a Phoronix Test Suite client discovers a Phoromatic Server, it will attempt to use it automatically as a local download cache. In the event of no Internet connection, it will also attempt to obtain the needed OpenBenchmarking.org test/suite meta-data from the Phoromatic Server based upon its archived meta-data. This allows the Phoronix Test Suite / Phoromatic deployment on the LAN to be self-sustaining without an Internet connection as long as the systems have all installed test dependencies.
Further configuration of the setup parameters for the Phoromatic Server and Phoronix Test Suite clients can be tuned via the *~/.phoronix-test-suite/user-config.xml* file. All control and configuration of the Phoromatic Server is done via the web-based interface when the Phoromatic Server is active.
The Phoromatic Server utilizes PHP/HHVM's built-in web-server capabilities and there's also a Phoronix Test Suite built-in WebSocket server that's also initiated for back-end processing. At this time there are no ports set by default for these services but must be defined within the user configuration file. With the Avahi zero-conf network discovery and other automated detection in place, there's little restrictions over the port selection.
Systemd and Upstart service files are shipped with the Phoronix Test Suite for those that wish to have the services automatically run as daemons. The only new requirements over the basic Phoronix Test Suite system requirements is having PHP-SQLite support installed and the newer version of PHP or HHVM is recommended for offering the best support.
### Example Deployments
#### Use Case A: Unrestricted Internet Access, Local Result Storage
Systems on your network with unrestricted Internet access is the easiest and simplest deployment for the Phoronix Test Suite and Phoromatic. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the *user-config.xml* file, simply run:
**$ phoronix-test-suite start-phoromatic-server**
Assuming you have no firewall or permission issues, the built-in web server and WebSocket server should proceed to initiate along with outputting the IP/port information for these services. Unless otherwise disabled from the user configuration file and if avahi-tools is present, the Phoromatic Server will be advertised with Avahi for zero-configuration networking.
From the Phoromatic web interface you are able to create an account and from there proceed with the creating of test schedules, updating settings, and connecting systems. From the "client systems" you wish to use as the benchmarking nodes, it's simply a matter of running **phoronix-test-suite phoromatic.connect** with zero-conf networking or otherwise follow the information from the Phoromatic web interface for manual setup with the IP/port information.
#### Use Case B: No Internet Available To Client Systems
It's possible to run the Phoronix Test Suite and Phoromatic Server without a persistent Internet connection as long as you are able to first download the necessary files to the Phoromatic Server. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the *user-config.xml* file, a few commands from the system while having an Internet connection will be able to cache the needed data:
This command will simply download all of the needed test files for the tests/suites passed to the sub-command. Alternatively you could also pass pts/all to cache all tests. It's important though to just cache the tests/suites you'll be using on your network. This will generate the test file download cache by default to *~/.phoronix-test-suite/download-cache/* or */usr/share/phoronix-test-suite/download-cache/* depending upon your write permissions. You can always run this command later with more test files. Alternatively, if you already have a number of tests installed on the system, simply running "phoronix-test-suite make-download-cache" will generate the cache based upon the currently installed tests.
This command will cache as much of the OpenBenchmarking.org meta-data as possible for test profiles and test suites. After the above commands, the Phoromatic Server should no longer need a persistent Internet connection.
Proceed to start the Phoromatic Server and operate as normal.
For the test clients without an Internet connection, as long as they're able to reach the Phoromatic Server, the Phoromatic Server should be able to automatically serve all of the needed test files download cache and OpenBenchmarking.org meta-data to the systems locally.
#### Use Case C: Phoromatic Across The Internet
If wishing to use the same Phoromatic Server across multiple geographic locations, it's easily possible -- you just lose out on the zero-conf networking ability. To let the Phoronix Test Suite client systems know about the remote Phoromatic Server, simply add the Phoromatic Server information to the client's *PhoromaticServers* element within the *user-config.xml* . Of course, make sure the Phoromatic Server has a globally resolvable IP address and its Phoromatic HTTP/WebSocket ports are open. Once informing the client of the Phoromatic Server, the use cases as above apply in the same manner.
### Client Setup
From Phoronix Test Suite client systems running on the LAN, the following command will report all available detected Phoromatic Servers along with important server and debugging information:
**$ phoronix-test-suite phoromatic.explore**
With the following example output on finding one successful server:
*IP: 192.168.1.211
HTTP PORT: 5447
WEBSOCKET PORT: 5427
@@ -64,29 +97,43 @@ PHORONIX TEST SUITE: Phoronix Test Suite v5.4.0m1 [5313]
DOWNLOAD CACHE: 19 FILES / 2390 MB CACHE SIZE
SUPPORTED OPENBENCHMARKING.ORG REPOSITORIES:
pts - Last Generated: 05 Oct 2014 07:16*
Phoromatic Servers are detected by the Phoronix Test Suite through Avahi or if manually configuring the Phoronix Test Suite clients to point to Phoromatic Servers. For networks without Avahi/auto-discovery support or for test systems that may be connecting from another network, the IP address and HTTP port number can be added to the local system's *~/.phoronix-test-suite/user-config.xml* with the *PhoromaticServers* element. Adding the *IP:port* (the Phoromatic Server's HTTP port) to the PhoromaticServers *user-config.xml* element for will perform targeted probing by the Phoronix Test Suite without any dependence on Avahi. Multiple Phoromatic Servers can be added if each IP:port is delimited by a comma.
To connect a Phoronix Test Suite system for benchmarking to an account, log into your Phoromatic account from the web-interface and on the main/system pages will be instructions along with a specially formed string to run, e.g. *phoronix-test-suite phoromatic.connect 192.168.1.211:5447/I0SSJY* . When running that command once on the system(s) to be synced to that account, as the administrator you'll be able to validate/approve the systems from the Phoromatic web interface. After that, whenever the system(s) are to be running benchmarks, simply have the **phoronix-test-suite phoromatic.connect** command running on the system (after the initial account has been synced, simply running **phoronix-test-suite phoromatic.connect** is enough for the system to find the server and its account).
### Root Administrator
The root administrator account is able to manage the server-level settings, e.g. Phoromatic storage location and other global settings related to the Phoronix Test Suite / Phoromatic Server, from the web user-interface.
To enable the root administrator log-in, first from the server's command-line interface run **phoronix-test-suite phoromatic.set-root-admin-password** to set the password. Following that, you can log into the root administrator account via the web interface via the *rootadmin* user-name and the set password.
### Other Advice
#### Disable Internet Precaution
If you have an Internet connection but want to ensure your Phoronix Test Suite client doesn't attempt to use it for any matter, via the *~/.phoronix-test-suite/user-config.xml* you can set *NoInternetCommunication* to *TRUE* . There's also a NoNetworkCommunication tag, but setting that to TRUE will disable any form of network communication -- including communication with the Phoromatic Server.
#### Ports / Services
The Phoromatic Server process currently relies upon a PHP/HHVM built-in web server process and a PTS-hosted WebSocket server. The web server process handles the web UI and much of the responsibilities of the Phoromatic Server. Over time the PTS WebSocket server will be increasingly utilized for bi-directional, real-time communication between the server and clients -- including for features like viewing real-time hardware sensors of client systems from the server UI.
#### Systemd / Upstart
Packaged with the Phoronix Test Suite are basic *phoromatic-client* and *phoromatic-server* configurations for both Upstart and systemd init systems. The *phoromatic-server* configuration will launch the Phoronix Test Suite's Phoromatic Server and the *phoromatic-client* service will attempt to connect to a _pre-configured_ Phoromatic Server. The systemd service files will automatically be installed via the Phoronix Test Suite *install-sh* process while the Upstart jobs can be copied from *deploy/phoromatic-upstart/** to */etc/init* .
#### Cache Verification
To confirm the files accessible to Phoronix Test Suite client systems, from the Phoromatic Server web user-interface go to the *settings* page followed by the *cache settings* link to view information about the download and OpenBenchmarking.org caches. From the client systems, running **phoronix-test-suite phoromatic.explore** will also supply cache statistics.
#### Log Files
The Phoromatic Server will produce a log file of events / debugging information to *~/.phoronix-test-suite/phoromatic.log* or */var/log/phoromatic.log* depending upon the service's permissions. When running the Phoronix Test Suite Phoromatic client, the log will be written to one of the respective locations in *phoronix-test-suite.log* .
#### Multi-User Accounts
For each time a user account is made from the Phoromatic web UI's log-in page, all of the test schedules, systems, and other account information is separate to allow for a completely isolated multi-user system. If a main administrator (the one creating the account) wishes to have multiple users sharing the same account data, that user can create additional accounts from the *Users* tab of their account. The main administrator can make an additional administrator account or a "viewer" account that can consume the account's data but not create/modify the schedules, systems, or other account details.
#### File Locations
When running the Phoronix Test Suite Phoromatic Server as root, rather than using the *~/.phoronix-test-suite/* directory, the standard Linux file-system hierarchy standard is honored. The main storage path is */var/lib/phoronix-test-suite/* , the user configuration file is */etc/phoronix-test-suite.xml* , and */var/cache/phoronix-test-suite/* for cache files.
#### Uploading Other Test Results
Unscheduled test results and other results found on connected systems to a Phoromatic account can upload the data to the Phoromatic Server using the *phoronix-test-suite phoromatic.upload-result <result file identifier >* sub-command.
#### User Context File Logging
For those utilizing custom set context script files as part of the Phoromatic test schedule, any important notes / log information can be written to the file specified by the *PHOROMATIC_LOG_FILE* environment variable set while running the user context scripts. The contents of that file is then sent to the Phoromatic Server otherwise the standard output of the script's execution is submitted to the Phoromatic Server for logging. These logs can then be viewed by the Phoromatic Server along with the test results. Other environment variables accessible when running a user context script include *PHOROMATIC_TRIGGER* , *PHOROMATIC_SCHEDULE_ID* , and *PHOROMATIC_SCHEDULE_PROCESS* .
Phoronix Test Suite 8.0 features rewritten Windows support that is at a near feature parity to the program's long-standing support for Linux, macOS, BSD and Solaris operating systems. To make it abundantly clear, if you are using a Phoronix Test Suite version pre-8.0, you are best upgrading or ideally using Phoronix Test Suite Git as the Windows support remains in very active development at the moment as of early 2018.
The Phoronix Test Suite Windows support currently targets **Windows 10 x64** and **Windows Server 2016 x64** . Earlier versions of Windows, namely Windows Server 2012 and Windows 8, may work to some extent but some hardware/software reporting features and other capabilities may be missing or report warning messages. The Phoronix Test Suite Windows support is also exclusively focused on x86 64-bit support: the Phoronix Test Suite itself will run on x86 32-bit but many of the program dependencies are configured for making use of 64-bit binaries.
### Windows Setup / Dependencies
As with Phoronix Test Suite on Linux and other operating systems, the principal dependency is on PHP (PHP v5.3 or newer, including PHP 7.x). Running the *phoronix-test-suite.bat* file launcher for the Phoronix Test Suite on Windows will attempt to download and setup PHP on the system under *C:\PHP* as the default location should PHP support not be found within your system's *Program Files* directories. The PHP Windows build does depend upon Microsoft Visual C++ redistributable libraries, which the Windows launcher will also attempt to download and install if needed.
The Phoronix Test Suite on Windows does depend upon [Cygwin](https://www.cygwin.com/) for its Bash interpreter and other basic utilities to ease the process of porting test profiles to Windows with being able to use many of the same test installation scripts on Windows/Linux/macOS/BSD/Solaris then largely unmodified. Most of the Windows tests depend upon their respective native Windows applications/binaries while this Cygwin support is a convenience for handling these Bash setup scripts and also some test profiles that depend upon a GNU toolchain. The Phoronix Test Suite will attempt to download and setup Cygwin on the system if Cygwin isn't found in its default location of *C:\cygwin64* .
Various test profiles may depend upon other "external dependencies" like Python, PERL, Steam, and Java, as examples. The Phoronix Test Suite as with its support for other operating systems and Linux distributions will attempt to install these needed dependencies on a per-test basis when needed if existing support is not detected on the system.
### Running The Phoronix Test Suite On Windows
The Phoronix Test Suite can run from its local directory and does not need to be "installed" to a system path or any other "setup" process prior to execution. On a clean install of Windows 10 x64 or Windows Server 2016, deploying the Phoronix Test Suite is designed to be as easy and straight-forward as possible:
1. Download the Phoronix Test Suite 8.0+ or [Phoronix-Test-Suite from GitHub](https://github.com/phoronix-test-suite/phoronix-test-suite) ( [zip file](https://github.com/phoronix-test-suite/phoronix-test-suite/archive/master.zip) ).
2. From the Command Prompt or PowerShell, enter the *phoronix-test-suite* directory whether it be from Git or a zipped download.
3. Run the *phoronix-test-suite.bat* file that should proceed to run the Phoronix Test Suite just as you would on any other operating system. If needed the Phoronix Test Suite will try to initially download and setup PHP if needed followed by the attempted automatic Cygwin setup, etc.
4. Any of the Phoronix Test Suite commands from other operating systems should work on Windows. If you are new to the Phoronix Test Suite, you may enjoy a bit more guided experience by running the **phoronix-test-suite shell** command.
### Test Profiles On Windows
As of March 2018, around 50 of the test profiles are currently compatible with the Phoronix Test Suite on Windows. This includes many of the popular benchmarks and other interesting test cases. Over time more test profiles will continue to be ported to Windows where applicable and there are also some Windows-only tests also supported for execution by the Phoronix Test Suite.
### Getting Started
Besides **phoronix-test-suite shell** and **phoronix-test-suite help** , there is also **phoronix-test-suite interactive** for helping new users understand Phoronix Test Suite benchmarking. Long story short, it should be as easy as running **phoronix-test-suite benchmark c-ray** or **phoronix-test-suite benchmark crafty** as some examples for carrying out automated, cross-platform benchmarks in a side-by-side and fully-reproducible manner.
### Support
Community technical support is available via [GitHub](https://github.com/phoronix-test-suite/phoronix-test-suite/issues) or general inquiries via [the Phoronix Forums](https://www.phoronix.com/forums/forum/phoronix/phoronix-test-suite) . For enterprise inquiries, commercial support, and custom engineering services, [contact us](http://phoronix-test-suite.com/?k=commercial) .
<p>The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for Linux, Solaris, MacOS 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.</p>
<p>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 <ahref="http://openbenchmarking.org/">OpenBenchmarking.org</a> 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.</p>
<p>The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for Linux, Solaris, macOS, Windows, 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.</p>
<p>The Phoronix Test Suite client itself is a test framework for providing seamless execution of test profiles and test suites. There are more than 400 tests available by default, which are transparently available via <ahref="http://openbenchmarking.org/">OpenBenchmarking.org</a> 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.</p>
<p>Running the Phoronix Test Suite for the first time can be as simple as issuing a command such as <em>phoronix-test-suite benchmark c-ray</em>, 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.</p>
<h1>OpenBenchmarking.org</h1>
<p>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.</p>
<p>This option will permanently remove a installed test by the Phoronix Test Suite.</p>
<h1>Testing</h1>
<h3>auto-compare<em></em>
</h3>
<p>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 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.</p>
<h3>benchmark<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
<p>This option will install the selected test(s) (if needed) and will proceed to run the test(s). This option is equivalent to running phoronix-test-suite with the install option followed by the run option. Multiple arguments can be supplied to run additional tests at the same time and save the results into one file.</p>
<h3>estimate-install-time<em> [Test | Suite | OpenBenchmarking ID | Test Result]</em>
</h3>
<p>This option will provide estimates for test install/setup time length.</p>
<h3>estimate-run-time<em> [Test | Suite | OpenBenchmarking ID | Test Result]</em>
</h3>
<p>This option will provide estimates for test run-time / length.</p>
@@ -59,12 +59,24 @@
<h3>run-random-tests<em></em>
</h3>
<p>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.</p>
<h3>run-tests-in-suite<em></em>
<h3>run-subset<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
<p>This option will run the selected test(s) but prompt the user when passing any test suites or result files what subset / test(s) contained within there to run rather than running all passed tests/suites/results.</p>
<h3>run-tests-in-suite<em> [Suite]</em>
</h3>
<p>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.</p>
<h3>stress-batch-run<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
<p>This option will run the passed tests/suites in the multi-process stress-testing mode while behaving by the Phoronix Test Suite batch testing characteristics. The stress-batch-run mode is similar to the stress-run command except that for any tests passed to it will run all combinations of the options rather than prompting the user for the values to be selected.</p>
<h3>stress-run<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
<p>This option will run the passed tests/suites in the multi-process stress-testing mode. The stress-run mode will not produce a result file but is rather intended for running multiple test profiles concurrently to stress / burn-in the system. The number of tests to run concurrently can be toggled via the PTS_CONCURRENT_TEST_RUNS environment variable and by default is set to a value of 2.</p>
<h3>strict-benchmark<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
<p>This option is equivalent to the `benchmark` option except it enables various options to run benchmarks an extended number of times for ensuring better statistical accuracy if enforcing strict controls over the data quality, in some cases running the benchmarks for 20+ times.</p>
<h3>strict-run<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
<p>This option is equivalent to the `run` option except it enables various options to run benchmarks an extended number of times for ensuring better statistical accuracy if enforcing strict controls over the data quality, in some cases running the benchmarks for 20+ times.</p>
<h1>Batch Testing</h1>
<h3>batch-benchmark<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
@@ -115,19 +127,28 @@
<h3>openbenchmarking-uploads<em></em>
</h3>
<p>This option will list any recent test result uploads from the system's IP address to OpenBenchmarking.org.</p>
<h3>recently-added-tests<em></em>
</h3>
<p>This option will list the most recently added (newest) test profiles.</p>
<h3>upload-result<em> [Test Result]</em>
</h3>
<p>This option is used for uploading a test result to OpenBenchmarking.org.</p>
<h3>upload-test-profile<em></em>
</h3>
<p>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.</p>
<h3>upload-test-suite<em></em>
<h3>upload-test-suite<em>[Suite]</em>
</h3>
<p>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.</p>
<h1>Information</h1>
<h3>check-tests<em> [Test]</em>
</h3>
<p>This option will perform a check on one or more test profiles to determine if there have been any vendor changes to the filename, filesize, url location, md5 and sha256 checksums.</p>
<h3>info<em> [Test | Suite | OpenBenchmarking ID | Test Result]</em>
</h3>
<p>This option will show details about the supplied test, suite, virtual suite, or result file.</p>
<h3>intersect<em> [Test | Suite | OpenBenchmarking ID | Test Result] ...</em>
</h3>
<p>This option will print the test profiles present in all passed result files / test suites. Two or more results/suites must be passed and printed will be all of the common test profiles.</p>
<h3>list-all-tests<em></em>
</h3>
<p>This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories. Unlike the other test listing options, list-all-tests will show deprecated tests, potentially broken tests, or other tests not recommended for all environments. The only check in place is ensuring the test profiles are at least compatible with the operating system in use.</p>
@@ -173,6 +194,9 @@
<h3>search<em></em>
</h3>
<p>This option provides command-line searching abilities for test profiles / test suites / test results. The search query can be passed as a parameter otherwise the user is prompted to input their search query..</p>
<h3>test-to-suite-map<em></em>
</h3>
<p>This option will list all test profiles and any test suites each test belongs to.</p>
<h1>Asset Creation</h1>
<h3>build-suite<em></em>
</h3>
@@ -198,6 +222,9 @@
<h3>inspect-test-profile<em> [Test]</em>
</h3>
<p>This option can be used for inspecting a Phoronix Test Suite test profile with providing inside details on test profiles for debugging / evaluation / learning purposes.</p>
<h3>rebuild-test-suite<em> [Suite]</em>
</h3>
<p>This option will regenerate the local test suite XML file against the OpenBenchmarking.org specification. This can be used to clean up any existing XML syntax / styling issues, etc.</p>
<h3>result-file-to-suite<em> [Test Result]</em>
</h3>
<p>This option will guide the user through the process of generating their own test suite, which they can then run, that is based upon an existing test results file.</p>
@@ -207,34 +234,46 @@
<h3>validate-test-profile<em> [Test]</em>
</h3>
<p>This option can be used for validating a Phoronix Test Suite test profile as being compliant against the OpenBenchmarking.org specification.</p>
<h3>validate-test-suite<em></em>
<h3>validate-test-suite<em>[Suite]</em>
</h3>
<p>This option can be used for validating a Phoronix Test Suite test suite as being compliant against the OpenBenchmarking.org specification.</p>
<h1>Result Management</h1>
<h3>analyze-all-runs<em> [Test Result]</em>
<h3>analyze-run-times<em> [Test Result]</em>
</h3>
<p>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.</p>
<p>This option will read a saved test results file and print the statistics about how long the testing took to complete.</p>
<h3>auto-sort-result-file<em> [Test Result]</em>
</h3>
<p>This option is used if you wish to automatically attempt to sort the results by their result identifier string.</p>
<p>This option will allows you to specify a result as a baseline (first parameter) and a second result file (second parameter) that will offer some analysis for showing how the second result compares to the first in matching tests.</p>
<p>This option will allows you to specify a result file and from there to compare two individual runs within that result file for looking at wins/losses and other metrics in a head-to-head type comparison.</p>
<h3>edit-result-file<em> [Test Result]</em>
</h3>
<p>This option is used if you wish to edit the title and description of an existing result file.</p>
<p>This option will extract a single set of test results from a saved results file that contains multiple test results that have been merged. The user is the prompted to specify a new result file name and select which result identifier to extract.</p>
<p>This option is the inverse of the remove-results-from-result-file sub-command. If you wish to remove all results but those listed from a given result file, this option can be used. The user must specify a saved results file and then they will be prompted to provide a string to search for in keeping those results in that given result file but removing all other data.</p>
<h3>merge-results<em> [Test Result] ...</em>
</h3>
<p>This option will manually merge multiple sets of test results generated by the Phoronix Test Suite.</p>
<h3>refresh-graphs<em> [Test Result]</em>
</h3>
<p>This option will re-render and save all result graphs within a saved file. This option can be used when making modifications to the graphing code or its color/option configuration file and testing the changes.</p>
<p>This option is used if there is a set of test results you wish to remove/delete from a saved results file. The user must specify a saved results file and then they will be prompted to select the results identifier associated with the results they wish to remove.</p>
<h3>remove-result<em> [Test Result]</em>
</h3>
<p>This option will permanently remove the saved file set that is set as the first argument.</p>
<p>This option is used if there are test results (benchmarks) to be dropped from a given result file. The user must specify a saved results file and then they will be prompted to select the tests/benchmarks to remove.</p>
<p>This option is used if there are test results (benchmarks) to be dropped from a given result file. The user must specify a saved results file and then they will be prompted to provide a string to search for in removing those results from that given result file.</p>
<p>This option is used if there is a set of test results you wish to remove/delete from a saved results file. The user must specify a saved results file and then they will be prompted to select the results identifier associated with the results they wish to remove.</p>
<p>This option is used if you wish to change the name of the identifier in a test results file that is shown in the Phoronix Test Suite Results Viewer and the contained graphs.</p>
@@ -244,6 +283,9 @@
<h3>reorder-result-file<em> [Test Result]</em>
</h3>
<p>This option is used if you wish to manually change the order in which test results are shown in the Phoronix Test Suite Results Viewer and the contained graphs. The user must specify a saved results file and then they will be prompted to select the results identifiers one at a time in the order they would like them to be displayed from left to right.</p>
<h3>result-file-raw-to-csv<em> [Test Result]</em>
</h3>
<p>This option will read a saved test results file and output the raw result file run data to a CSV file. This raw (individual) result file output is intended for data analytic purposes where the result-file-to-csv is more end-user-ready.</p>
<h3>result-file-to-csv<em> [Test Result]</em>
</h3>
<p>This option will read a saved test results file and output the system hardware and software information along with the results to a CSV output. The CSV (Comma Separated Values) output can then be loaded into a spreadsheet for easy viewing.</p>
@@ -259,9 +301,9 @@
<h3>show-result<em> [Test Result]</em>
</h3>
<p>Open up the test results in the Phoronix Test Suite Result Viewer or on OpenBenchmarking.org.</p>
<h3>winners-and-losers<em> [Test Result]</em>
<h3>workload-topology<em> [Test Result]</em>
</h3>
<p>This option is used if you wish to analyze a result file to see which runs produced the most wins/losses of those result identifiers in the saved file.</p>
<p>This option will read a saved test results file and print the test profiles contained within and their arrangement within different test suites for getting an idea as to the workload topology/make-up / logical groupings of the benchmarks being run.</p>
<h1>Other</h1>
<h3>commands<em></em>
</h3>
@@ -284,7 +326,7 @@
<h1>Modules</h1>
<h3>auto-load-module<em></em>
</h3>
<p>This option can be used for easily adding a module to the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.</p>
<p>This option can be used for easily adding a module to the AutoLoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.</p>
<h3>list-modules<em></em>
</h3>
<p>This option will list all of the available Phoronix Test Suite modules on this system.</p>
@@ -299,7 +341,7 @@
<p>This option can be used for debugging a Phoronix Test Suite module.</p>
<h3>unload-module<em></em>
</h3>
<p>This option can be used for easily removing a module from the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what modules are automatically loaded on start-up of the Phoronix Test Suite.</p>
<p>This option can be used for easily removing a module from the AutoLoadModules list in the Phoronix Test Suite user configuration file. That list controls what modules are automatically loaded on start-up of the Phoronix Test Suite.</p>
<h1>User Configuration</h1>
<h3>enterprise-setup<em></em>
</h3>
@@ -316,13 +358,26 @@
<h3>user-config-set<em></em>
</h3>
<p>This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.</p>
<h1>Web / GUI Support</h1>
<h3>gui<em></em>
<h1>Result Analysis</h1>
<h3>executive-summary<em>[Test Result]</em>
</h3>
<p>Launch the Phoronix Test Suite HTML5 web user-interface in the local GUI mode (no remote web support) and attempt to auto-launch the web-browser. THIS FEATURE IS CURRENTLY EXPERIMENTAL AND NO LONGER ACTIVE DEVELOPMENT. See Phoronix Test Suite Phoromatic as an alternative web UI approach.</p>
<p>This option will attempt to auto-generate a textual executive summary for a result file to highlight prominent results / averages.</p>
<h3>result-file-confidence<em> [Test Result]</em>
</h3>
<p>This option will read a saved test results file and display various statistics on the confidence of the results with the standard deviation, three-sigma values, and other metrics while color-coding "passing" results in green.</p>
<h3>result-file-stats<em> [Test Result]</em>
</h3>
<p>This option is used if you wish to analyze a result file by seeing various statistics on the result data for result files containing at least two sets of data.</p>
<h3>wins-and-losses<em> [Test Result]</em>
</h3>
<p>This option is used if you wish to analyze a result file to see which runs produced the most wins/losses of those result identifiers in the saved file.</p>
<h1>Phoromatic</h1>
<h3>start-phoromatic-server<em></em>
</h3>
<p>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.</p>
<p>The Phoronix Test Suite supports Linux, Apple MacOS 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 MacOS 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.</p>
<p>The Phoronix Test Suite supports Linux, Apple macOS, 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 macOS, 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.</p>
<p>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, Alpine Linux, Void Linux, Intel Clear Linux, and Amazon Linux EC2.</p>
<p>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.</p>
<h1>Dependencies</h1>
<p>The only required dependency for the Phoronix Test Suite is PHP 5.3 or newer. On Linux distributions, the needed package is commonly called <em>php5-cli</em> or <em>php-cli</em> or <em>php7</em> or <em>php</em>. 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 <ahref="http://www.php.net/">www.php.net</a>. PHP 7 is fully supported by the Phoronix Test Suite as well as HHVM.</p>
<p>For installing PHP on Windows, the <ahref="https://www.microsoft.com/web/platform/phponwindows.aspx">Microsoft Web Platform Installer</a>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 <em>C:\Program Files (x86)\PHP\</em> or a subdirectory.</p>
<p>The <em>phoronix-test-suite.bat</em>Windows launcher for the Phoronix Test Suite will automatically download and setup PHP on the local system if PHP is not present already.</p>
<p>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:</p>
<ul>
<li><strong>PHP DOM</strong> is needed for XML operations and must be installed for the Phoronix Test Suite to function.</li>
@@ -37,27 +37,11 @@
<p>Running <em>install-sh</em> from the root directory of the Phoronix Test Suite will install the software for system-wide access. By default the <em>phoronix-test-suite</em> executable is in <em>/usr/bin/</em>, the Phoronix Test Suite files in <em>/usr/share/phoronix-test-suite/</em>, and the documentation in /<em>usr/share/doc/phoronix-test-suite/</em>. Root access is required. The default installation prefix is /usr/ but can be adjusted as the first argument (example: <em>install-sh /home/user/</em> to install the Phoronix Test Suite in your home directory).</p>
<h2>Debian/Ubuntu Installation</h2>
<p>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 <em>phoronix-test-suite</em> executable in <em>/usr/bin/</em>, the Phoronix Test Suite files in <em>/usr/share/phoronix-test-suite/</em>, and the documentation in <em>/usr/share/doc/phoronix-test-suite/</em>.</p>
<p>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.</p>
<p>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 <em>disable_functions</em> line within the <em>/etc/php5/cli/php.ini</em> file. This may also affect other Linux distribution support too if the vendor disables access to the PCNTL functions.</p>
<h2>Fedora / Red Hat Installation</h2>
<p>The Phoronix Test Suite can be installed on Fedora, Red Hat Enterprise Linux, and CentOS systems using the generic installation method. Alternatively, a <em>phoronix-test-suite</em> package is available in recent versions of the Fedora repository and in the EPEL (Extra Packages for Enterprise Linux) repository for Red Hat Enterprise Linux. At this time, however, the Fedora-supplied package is vastly outof date.</p>
<h2>Gentoo Installation</h2>
<p>Gentoo ebuild's for the Phoronix Test Suite have been created by users and can be currently found in the <ahref="http://bugs.gentoo.org/show_bug.cgi?id=216656">Gentoo BugZilla</a>.</p>
<h2>Mandriva Installation</h2>
<p>Phoronix Test Suite packages are available through Mandriva Cooker starting with the Mandriva Linux 2009 release.</p>
<h2>OpenSolaris Installation</h2>
<p>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 <em>SUNWphp524</em> 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.</p>
<p>The Phoronix Test Suite can be installed on Fedora, Red Hat Enterprise Linux, and CentOS systems using the generic installation method. Alternatively, a <em>phoronix-test-suite</em> package is available in recent versions of the Fedora repository and in the EPEL (Extra Packages for Enterprise Linux) repository for Red Hat Enterprise Linux. However, at times this package may be out-of-date compared to upstream stable.</p>
<h2>BSD Installation</h2>
<p>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.</p>
<p>For DragonFlyBSD, it's a matter of just using <em>pkg_radd</em> with php5, php5-json, php5-dom, and php5-zip or <em>pkgsrc</em>. With DragonFlyBSD using dports, the command is <em>pkg install php5 php5-dom php5-zip php5-json php5-simplexml</em>. Under FreeBSD/PC-BSD, PHP can be obtained from the <em>php5</em> and <em>php5-extensions</em> Ports collection.</p>
<h2>Mac OS X Installation</h2>
<p>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.</p>
<h2>Windows Installation</h2>
<p>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 Phoronix Test Suite is developed and tested solely against Microsoft Windows 7 x64 and Microsoft Windows 8 x64.</p>
<p>At this time the Phoronix Test Suite client is dependent upon the <em>php.exe</em> executable being installed to <em>C:\Program Files (x86)\PHP\ </em> 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 <em>phoronix-test-suite.bat</em></p>
<p>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.</p>
<h2>Facebook HipHop</h2>
<p>The Phoronix Test Suite can use Facebook's <ahref="https://github.com/facebook/hiphop-php">HipHop HHVM</a> 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 <em>PHP_BIN</em> environment variable can be set to point to an alternative <em>hhvm</em> binary.</p>
<p>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 <em>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"</em> from the root <em>phoronix-test-suite/</em> directory. It can then be executed in the form of <em>/tmp/hphp_XXX/program -f pts-core/phoronix-test-suite.php system-info</em>.</p>
<p>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 should run well on the likes of FreeBSD and DragonFlyBSD.</p>
<h2>MacOS Installation</h2>
<p>The Phoronix Test Suite is fully supported on Apple's macOS operating system. PHP ships with macOS 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.</p>
<html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>External Dependencies</title></head><body><p>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.</p><p>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.<hr><ul></ul><li>Alpine Linux</li><li>Amazon</li><li>Angstrom</li><li>Arch Linux</li><li>CentOS</li><li>ClearOS</li><li>ClearOS Core Server</li><li>Debian</li><li>DragonFlyBSD</li><li>Fedora</li><li>Fluxbuntu</li><li>GNU KFreeBSD</li><li>Gentoo</li><li>Goobuntu</li><li>HP</li><li>Joli Cloud</li><li>Linaro</li><li>Linux Embedded Development Environment</li><li>Linux Mint</li><li>MEPIS</li><li>Mac OS X</li><li>MacPorts</li><li>Mageia</li><li>Mandriva</li><li>MeeGo</li><li>Microsoft Windows</li><li>MidnightBSD</li><li>Moblin</li><li>Mythbuntu</li><li>NetBSD</li><li>Nexenta Core</li><li>OLPC</li><li>OpenIndiana</li><li>OpenMandriva</li><li>OpenSolaris</li><li>OpenSuSE</li><li>Optware</li><li>Oracle Server</li><li>PCLinuxOS</li><li>PTS Desktop Live</li><li>PTS Linux Live</li><li>Palm</li><li>Pardus Linux</li><li>Red Hat Enterprise</li><li>Red Hat Enterprise Server</li><li>SUSE</li><li>SUSE Linux</li><li>Scientific</li><li>ScientificSL</li><li>Solus</li><li>Solus Linux</li><li>Termux</li><li>Ubuntu</li><li>Void Linux</li><li>Zenwalk</li><li>gNewSense</li><li>macOS Brew</li></p></body></html>
<p>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.</p>
<p>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.<hr><ul></ul><li>Alpine Linux</li><li>Amazon</li><li>Angstrom</li><li>Arch Linux</li><li>Clear Linux</li><li>ClearOS</li><li>ClearOS Core Server</li><li>Debian</li><li>DragonFlyBSD</li><li>Fedora</li><li>Fluxbuntu</li><li>GNU KFreeBSD</li><li>Gentoo</li><li>Goobuntu</li><li>HP</li><li>Joli Cloud</li><li>Linaro</li><li>Linux Embedded Development Environment</li><li>Linux Mint</li><li>MEPIS</li><li>Mac OS X</li><li>MacPorts</li><li>Mageia</li><li>Mandriva</li><li>MeeGo</li><li>Microsoft Windows</li><li>MidnightBSD</li><li>Moblin</li><li>Mythbuntu</li><li>NetBSD</li><li>Nexenta Core</li><li>OLPC</li><li>OpenIndiana</li><li>OpenMandriva</li><li>OpenMandrivaLinux</li><li>OpenSolaris</li><li>OpenSuSE</li><li>Optware</li><li>Oracle Server</li><li>PCLinuxOS</li><li>Palm</li><li>Pardus Linux</li><li>Red Hat Enterprise</li><li>Red Hat Enterprise Server</li><li>SUSE</li><li>SUSE Linux</li><li>Scientific</li><li>ScientificSL</li><li>Solus</li><li>Solus Linux</li><li>Termux</li><li>Ubuntu</li><li>Void Linux</li><li>Zenwalk</li><li>gNewSense</li><li>macOS Brew</li></p>
<p>This is the directory where test suites are stored.</p>
<h1>Environment Variables</h1>
<p><strong>TEST_TIMEOUT_AFTER</strong></p>
<p>When this variable is set, the value will can be set to <em>auto</em> or a positive integer. The value indicates the number of minutes until a test run should be aborted, such as for a safeguard against hung/deadlocked processes or other issues. Setting this to a high number as a backup would be recommended for fending off possible hangs / stalls in the testing process if the test does not quit. If the value is <em>auto</em>, it will quit if the time of a test run exceeds 3x the average time it normally takes the particular test to complete its run. In the future, auto might be enabled by default in a future PTS release.</p>
<p><strong>TEST_RESULTS_NAME</strong></p>
<p>When this variable is set, the value will be used as the name for automatically saving the test results.</p>
<p><strong>TEST_RESULTS_IDENTIFIER</strong></p>
@@ -55,8 +57,16 @@
<p>When running any test(s), if you would like the test(s) to continue running for a number of times, this variable can be used. The value should be the number of times to loop the testing process before ending.</p>
<p><strong>FORCE_TIMES_TO_RUN</strong></p>
<p>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.</p>
<p>This option allows specifying a multiple for increasing the number of times a test will run based upon the original TimesToRun value specified in the test definition. This allows for increasing the expected times to run based on a multiple of that default rather than a static value.</p>
<p><strong>FORCE_MIN_TIMES_TO_RUN</strong></p>
<p>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.</p>
<p>When used in conjunction with FORCE_MIN_TIMES_TO_RUN, the override value will only be applied to test profiles where its average run-time length (in minutes) is less than the value specified by FORCE_MIN_TIMES_TO_RUN_CUTOFF.</p>
<p>This is similar to FORCE_MIN_TIMES_TO_RUN but allows specifying a time (in minutes) that each test should be run for. Each test will loop at least until that amount of time has elapsed. This can be useful for short-running tests if wanting to ensure each test is run long enough to rule out system noise.</p>
<p><strong>IGNORE_RUNS</strong></p>
<p>IGNORE_RUNS can be passed a comma-separated list of runs to skip on each benchmark. For example, IGNORE_RUNS=1 would always drop the first run from being recorded.</p>
<p><strong>NO_FILE_HASH_CHECKS</strong></p>
<p>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 <em>NO_MD5_CHECKS</em>, which is still honored but was changed to <em>NO_FILE_HASH_CHECKS</em> to reflect other kind of file hash sum checks.</p>
<Title>Offline Improvements + Confidential Testing / Avoiding Accidental Result Uploads</Title>
</head>
<body>
<h1>Offline Enhancement Via Local Cache</h1>
<p>Beginning with Phoronix Test Suite 9.0, there are improvements to improve the out-of-the-box experience if running the Phoronix Test Suite in a strictly offline environment / behind-the-firewall without access to OpenBenchmarking.org for being able to obtain test profiles / test suites. From Phoronix Test Suite 3.0 when OpenBenchmarking.org was introduced until Phoronix Test Suite 9.0, Internet connectivity was initially required for obtaining the test profiles/suites as the cloud/repository. OpenBenchmarking.org allows for tests to be updated independently of the Phoronix Test Suite releases as well as allowing new tests to be introduced on-demand. Aside from when new tests require explicit new PTS features, this allows tests/suites to be seamlessly used by older versions of the Phoronix Test Suite without any upgrade process required, assuming Internet connectivity is available.</p>
<p>Beginning with Phoronix Test Suite 9.0, a static snapshot of the official tests/suites is included as part of the Phoronix Test Suite package. The intention with this is to provide a static snapshot with all tests/suites as of release time, similar to the behavior with pre-3.0 releases. The benefit to including this static snapshot is helping those that are running strictly offline/isolated to be able to have at least recent tests/suites available without first needing to query OpenBenchmarking.org for this data. But Internet support is certainly desired in order to be able to obtain updated and new test profiles.</p>
<p>This static snapshot is provided in the <em>ob-cache/</em> Phoronix Test Suite folder. If this cache is not needed or wish to customize/extend it, it can be safely removed and or altered without causing issues. When the Phoronix Test Suite has Internet connectivity, it will continue to query OpenBenchmarking.org for new/updated tests and suites.</p>
<p>This local cache does provide current and previous versions of test profiles to allow users to continue running older versions of tests/results even when upgrading their Phoronix Test Suite offline copy.</p>
<p>Even with the local cache, there still is the need for obtaining any necessary files needed to run the selected test(s). For those wishing to optimize that workflow for offline usage, see the existing <em>phoronix-test-suite make-download-cache</em> sub-command documentation. The <em>phoronix-test-suite make-openbenchmarking-cache</em> sub-command may also be desirable depending upon setup.</p>
<h1>Disabling OpenBenchmarking.org Result Upload Functionality</h1>
<p>Phoronix Test Suite 9.0 also improved the workflow around disabling OpenBenchmarking.org result uploading functionality for those carrying out confidential tests or otherwise wish to provide safeguards for ensuring no results may be accidentally uploaded publicly.</p>
<p>Removal of OpenBenchmarking.org upload support can be done by deleting <em>phoronix-test-suite/pts-core/objects/pts_openbenchmarking_upload.php</em>. If that file is removed, the Phoronix Test Suite should respond gracefully and not prompt users about any upload and within that file is the only logic for actually uploading the results to Openbenchmarking. So simply by removing that file you should be covered from any accidental uploading of results. Removal/disabling of this file also prevents any anonymous usage reporting.</p>
<p>For those without the ability to remove that file from their Phoronix Test Suite installation or as a secondary safeguard, from the Phoronix Test Suite user configuration file (<em>/etc/phoronix-test-suite.xml<em> as root or <em>~/.phoronix-test-suite/user-config.xml<em> for most users) is a "<em>AllowResultUploadsToOpenBenchmarking</em>" option. If setting that value to <em>FALSE</em>, it should apply the same behavior as if deleting the pts_openbenchmarking_upload file.</p>
<p>If distributing a customized/local copy of the Phoronix Test Suite, the default behavior of the configuration file (in addition to deleting the pts_openbenchmarking_upload file) can be done via the user configuration defaults defined within <em>pts-core/static/user-config-defaults.xml</em>.</p>
<h1>Creating A New Phoronix Test Suite / OpenBenchmarking.org Test Profile</h1>
<p>A test profile itself consists of a main XML file containing the test's meta-data (<em>test-definition.xml</em>), an XML file if needed to specify required files, download URLs and their MD5/SHA256 hashes and file sizes (<em>downloads.xml</em>), and the <em>install.sh</em> script for installing the test and generating the run-script for execution by the Phoronix Test Suite at run-time. There are also other potential files like <em>pre.sh</em>, <em>interim.sh</em>, and <em>post.sh</em> for execution at pre-run, interim-run, and post-run stages by the Phoronix Test Suite. With the script files comprising test profiles, there is also the option of post-fixing them with e.g. <em>_linux</em> or <em>_windows</em> if wishing to supply different script files based upon the operating system being run during testing, if the setup steps may differ greatly based upon MacOS/Windows/Linux/BSD/Solaris platforms.</p>
<p>Traditionally the easiest way to learn/understand test profile development has been by looking at looking at a basic test like <em>c-ray</em>, <em>tesseract</em> or the hundreds of others that are publicly available. Simply run for example <em>phoronix-test-suite benchmark tesseract</em> and then look at the test profile's contents either via the default locations in <em>~/.phoronix-test-suite/test-profiles</em> or <em>/var/lib/phoronix-test-suite/test-profiles/</em> if running as root on non-Windows platforms.</p>
<h2>Versioning Mandate</h2>
<p>The Phoronix Test Suite / OpenBenchmarking.org philosophy <em>mandates that with any change, a new version of the test profile be tagged</em>. This is done for reproducibility and being able to ensure the exact test profile state when a set of tests are conducted. Test profiles are versioned in a <strong>test-X.Y.Z</strong> format where <em>X</em> or <em>Y</em> are bumped whenever a change is made to the test profile that makes the results incomparable to a previous version of the tests (e.g. updating against a new upstream code-base, adjusting the parameters to what is benchmarked, etc). The Phoronix Test Suite then knows not to attempt any comparisons with an incompatible version difference or to go and fetch that specific version of the package. The <em>Z</em> is bumped when just making non-important changes such as just updating the test's meta-data, changing download URLs, etc. This is easy to enforce with the OpenBenchmarking.org infrastructure rather than having to worry about non-human-friendly Git hashes as test profile versions or having to create Git tags after every commit. The test profile version can optionally be specified when running a test, e.g. <em>phoronix-test-suite benchmark scimark2-1.2.1</em> instead of <em>phoronix-test-suite benchmark scimark2</em>, which would by default choose the latest available test profile version from OpenBenchmarking.org or the latest version on any local Phoromatic Server. The test profile versions are also always written out as part of the Phoronix Test Suite result XML data.</p>
<h2>Writing A Sample Program</h2>
<p>Writing a test profile for the Phoronix Test Suite is a relatively quick and easy process for anyone familiar with common Linux commands and the basics of XML. To help you understand the design of the Phoronix Test Suite, this guide covers the steps needed to write a testing profile for a very simple application.</p>
<p>The first step in the profile writing process is to, well, have a piece of software you'd like to use with the Phoronix Test Suite. This software can be closed-source or open-source and be virtually anything as long as it is compatible with an operating system that is supported by the Phoronix Test Suite.</p>
<p>For this guide, the piece of software being used for demonstration is just a simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. Below is this sample piece of software intended just for demonstration purposes.</p>
<blockquote>#include <iostream><br>
#include <math.h></p>
<p>int main()<br>
{<br>
double pi = 0;</p>
<p> for(long int i = 1; i <= 87654321; i++)<br>
<p>The first step in the actual profile writing process is to name it. If you're looking to ultimately push this profile to be included in the Phoronix Test Suite, its name must be all lower case and consist of just alpha-numeric characters, but can contain dashes (-). A more advanced test profile capability is operating system prefixes, and if using those there is an underscore separating the prefix from the normal profile name. For this sample profile, we're calling it <em>sample-program</em> and the file-name would be <em>sample-program/test-definition.xml</em>. Our (very basic) profile is showcased below.</p>
<Description>A simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. This test can be used for showcasing how to write a basic test profile.</Description><br>
<p>This XML profile is what interfaces with the Phoronix Test Suite and provides all the needed information about the test as well as other attributes. For a complete listing of all the supported profile options, look at the specification files in the documentation folder. In the case of <em>sample-program</em>, it lets the Phoronix Test Suite know that it's composed of free software, is designed to test the processor, is intended for private use only, and this profile is maintained by Phoronix Media. In addition, it tells the Phoronix Test Suite to execute this program three times and as no result quantifier is set, the average of the three runs will be taken. This profile also tells the Phoronix Test Suite that the generic <em>build-utilities</em> package is needed, which will attempt to ensure that default system C/C++ compiler and the standard development utilities/libraries are installed on your Linux distribution. This is needed as the C++ source-code will need to be built from source.</p>
<p>The next step is to write the <em>install.sh</em> file, which once called by the Phoronix Test Suite is intended to install the test locally for benchmarking purposes. The <em>install.sh</em> file is technically optional, but is generally used by all tests. Note: The first argument supplied to the install script is the directory that the test needs to be installed to. The <em>install.sh</em> file (in our instance) is to be placed inside <em>test-profiles/sample-program</em>. Below is the <em>install.sh</em> for the <em>sample-program</em>.</p>
<p>This install file builds the code with GCC, and then creates a small script that is run by the Phoronix Test Suite. Where does the source-code come into play? Well, it needs to be downloaded now from a web server. The Phoronix Test Suite has built-in support for managing downloads from multiple servers in a random over, fall-back support if one mirror is done, and verification of MD5 check-sums. Below is the <em>downloads.xml</em> file for <em>sample-program</em> that covers all of this.</p>
<p>The final step in the profile writing process is to write a parser to strip all information but the reported result from the standard output or <em>$LOG_FILE</em>. In the case of a test profile just measuring how long it takes to run, it is as simple as a <em>results-definition.xml</em> looking like:</p>
<blockquote><?xml version="1.0"?><br>
<PhoronixTestSuite><br>
<SystemMonitor><br>
<Sensor>sys.time</Sensor><br>
</SystemMonitor><br>
</PhoronixTestSuite></blockquote>
<p>After that, with all the files in their correct locations, just run: <em>phoronix-test-suite benchmark sample-program</em>. The Phoronix Test Suite should now handle the rest by installing the test, running the test, and recording the results (if you so choose). There is no additional work that needs to be done for the results to be recorded in the results viewer or even reporting the results to OpenBenchmarking.org. An up-to-date version of this test profile can be run via <em>phoronix-test-suite benchmark sample-program</em> and then by looking at the test profile source via <em>~/.phoronix-test-suite/test-profiles/pts/sample-program*</em> or within <em>/var/lib/phoronix-test-suite/test-profiles/pts/</em> if running as root.</p>
@@ -2,17 +2,17 @@ The Phoronix Test Suite itself is an open-source framework for conducting automa
This framework is designed to be an extensible architecture so that new test profiles and suites can be easily added to represent performance benchmarks, unit tests, and other quantitative and qualitative (e.g. image quality comparison) measurements. Available through OpenBenchmarking.org, a collaborative storage platform developed in conjunction with the Phoronix Test Suite, are more than 200 individual test profiles and more than 60 test suites available by default from the Phoronix Test Suite. Independent users are also able to upload their test results, profiles, and suites to OpenBenchmarking.org. A test profile is a single test that can be executed by the Phoronix Test Suite -- with a series of options possible within every test -- and a test suite is a seamless collection of test profiles and/or additional test suites. A test profile consists of a set of Bash/shell scripts and XML files while a test suite is a single XML file.
[OpenBenchmarking.org](http://www.openbenchmarking.org/) also allows for conducting side-by-side result comparisons, a central location for storing and sharing test results, and collaborating over test data. [Phoromatic](http://www.phoromatic.com/) is a complementary platform to OpenBenchmarking.org and the Phoronix Test Suite for interfacing with Phoronix Test Suite client(s) to automatically execute test runs on a timed, per-commit, or other trigger-driven basis. Phoromatic is designed for enterprise and allows for the easy management of multiple networked systems running Phoronix Test Suite clients via a single web-based interface.
[OpenBenchmarking.org](https://www.openbenchmarking.org/) also allows for conducting side-by-side result comparisons, a central location for storing and sharing test results, and collaborating over test data. [Phoromatic](https://www.phoromatic.com/) is a complementary platform to OpenBenchmarking.org and the Phoronix Test Suite for interfacing with Phoronix Test Suite client(s) to automatically execute test runs on a timed, per-commit, or other trigger-driven basis. Phoromatic is designed for enterprise and allows for the easy management of multiple networked systems running Phoronix Test Suite clients via a single web-based interface.
Professional support and custom engineering for the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org is available by contacting <http://www.phoronix-test-suite.com/>.
Professional support and custom engineering for the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org is available by contacting <https://www.phoronix-test-suite.com/>.
Full details on the Phoronix Test Suite setup and usage is available from the included HTML/PDF documentation within the phoronix-test-suite package and from the Phoronix Test Suite website.
## Installation & Setup
The Phoronix Test Suite is supported on Linux, *BSD, Solaris, MacOS X, and Windows systems. However, the most full-featured and well supported operating system for conducting the tests is Linux with some non-basic functionality not being available under all platforms. The Phoronix Test Suite software/framework is compatible with all major CPU architectures (e.g. i686, x86_64, ARM, PowerPC), but not all of the test profiles/suites are compatible with all architectures.
The Phoronix Test Suite is supported on Linux, *BSD, Solaris, macOS, and Windows systems. However, the most full-featured and well supported operating system for conducting the tests is Linux with some non-basic functionality not being available under all platforms. The Phoronix Test Suite software/framework is compatible with all major CPU architectures (e.g. i686, x86_64, ARM, RISC-V, PowerPC), but not all of the test profiles/suites are compatible with all architectures.
The Phoronix Test Suite can be installed for system-wide usage or run locally without installation from the extracted tar.gz/zip package. The only hard dependency on the Phoronix Test Suite is having command-line support for PHP (PHP 5.3+) installed. A complete PHP stack (e.g. with web server) is **not** needed, but merely the PHP command-line support, which is widely available from operating system package managers under the name `php`, `php5-cli`, or `php5`.
The Phoronix Test Suite can be installed for system-wide usage or run locally without installation from the extracted tar.gz/zip package. The only hard dependency on the Phoronix Test Suite is having command-line support for PHP (PHP 5.3+) installed. A complete PHP stack (e.g. with web server) is **not** needed, but merely the PHP command-line support, which is widely available from operating system package managers under the name `php`, `php7-cli`, `php5-cli`, or `php7`.
## Usage
@@ -20,6 +20,6 @@ The process to download, install/setup, execute, and report the results of a ben
Viewing installed system hardware and software is available via `phoronix-test-suite system-info`.
Facilitating a result comparison from OpenBenchmarking.org can be done by running, for example, `phoronix-test-suite benchmark 1204293-BY-PHORONIX357` if wishing to compare the results of the `http://openbenchmarking.org/result/1204293-BY-PHORONIX357` result file.
Facilitating a result comparison from OpenBenchmarking.org can be done by running, for example, `phoronix-test-suite benchmark 1204293-BY-PHORONIX357` if wishing to compare the results of the `https://openbenchmarking.org/result/1204293-BY-PHORONIX357` result file.
Additional information is available from the Phoronix Test Suite website <http://www.phoronix-test-suite.com/> and the material bundled within the `phoronix-test-suite/documentation/` directory or via <http://www.phoronix-test-suite.com/documentation/>. A man page is also bundled with the phoronix-test-suite software.
Additional information is available from the Phoronix Test Suite website <https://www.phoronix-test-suite.com/> and the material bundled within the `phoronix-test-suite/documentation/` directory or via <https://www.phoronix-test-suite.com/documentation/>. A man page is also bundled with the phoronix-test-suite software.
The files in this directory are optional, providing a static cache of test profiles / test suites available via OpenBenchmarking.org.
Patches to this directory will not be accepted but test profile changes should be submitted via https://github.com/phoronix-test-suite/test-profiles/
This "ob-cache" is intended to help those running the Phoronix Test Suite behind firewalls / offline where they may not be able to query OpenBenchmarking.org for obtaining test data.
{"main":{"generated":1612047915},"tests":{"aom-av1":{"title":"AOM AV1","description":"This is a simple test of the AOMedia AV1 encoder run on the CPU with a sample video file.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux","MacOSX","BSD"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"785","average_install_time":"182","last_updated":"1552063091","first_added":"1552063091","popularity":"1422","downloads":"2009","versions":["1.1.0"]},"dav1d":{"title":"dav1d","description":"Dav1d is an open-source, speedy AV1 video decoder. This test profile times how long it takes to decode sample AV1 video content.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux","BSD"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"1612","average_install_time":"258","last_updated":"1579721829","first_added":"1579697045","popularity":"1237","downloads":2722,"versions":["1.0.1","1.0.0"]},"rav1e":{"title":"rav1e","description":"Xiph rav1e is a Rust-written AV1 video encoder.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux","MacOSX","BSD"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"694","average_install_time":"261","last_updated":"1578155433","first_added":"1578155433","popularity":"1194","downloads":"2526","versions":["1.0.0"]},"svt-av1":{"title":"SVT-AV1","description":"This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-AV1 CPU-based multi-threaded video encoder for the AV1 video format with a sample 1080p YUV video file. This test profile fork builds the encoder from Git source rather than a snapshot.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"167","average_install_time":"80","last_updated":"1552059151","first_added":"1552059151","popularity":"1416","downloads":"2001","versions":["1.2.0"]},"svt-hevc":{"title":"SVT-HEVC","description":"This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-HEVC CPU-based multi-threaded video encoder for the HEVC \/ H.265 video format with a sample 1080p YUV video file. This test uses SVT-HEVC from Git master.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"73","average_install_time":"53","last_updated":"1552060068","first_added":"1552060068","popularity":"1411","downloads":"1998","versions":["1.0.0"]},"svt-vp9":{"title":"SVT-VP9","description":"This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-VP9 CPU-based multi-threaded video encoder for the VP9 video format with a sample 1080p YUV video file. This test profile uses the Git snapshot of SVT-VP9.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"42","average_install_time":"50","last_updated":"1552059681","first_added":"1552059681","popularity":"1419","downloads":"1989","versions":["1.0.0"]},"vpxenc":{"title":"VP9 libvpx Encoding","description":"This is a standard video encoding performance test of Google's libvpx library and the vpxenc command for the VP9\/WebM format using a sample 1080p video.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"754","average_install_time":"76","last_updated":"1552061773","first_added":"1552061773","popularity":"1421","downloads":"1970","versions":["2.3.0"]},"x265":{"title":"x265","description":"This is a simple test of the x265 encoder run on the CPU with a sample 1080p video file.","test_type":"Processor","software_type":"Utility","status":"Verified","supported_platforms":["Linux","MacOSX","BSD"],"internal_tags":["SMP"],"test_extends":"","package_hash":null,"average_run_time":"169","average_install_time":"189","last_updated":"1552061034","first_added":"1552061034","popularity":"1399","downloads":"2048","versions":["1.1.0"]}},"suites":[]}
<Description>Dav1d is an open-source, speedy AV1 video decoder. This test profile times how long it takes to decode sample AV1 video content.</Description>
<Description>This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-AV1 CPU-based multi-threaded video encoder for the AV1 video format with a sample 1080p YUV video file. This test profile fork builds the encoder from Git source rather than a snapshot.</Description>
<ResultScale>Frames Per Second</ResultScale>
<Proportion>HIB</Proportion>
<SubTitle>1080p 8-bit YUV To AV1 Video Encode</SubTitle>
<Description>This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-HEVC CPU-based multi-threaded video encoder for the HEVC / H.265 video format with a sample 1080p YUV video file. This test uses SVT-HEVC from Git master.</Description>
<ResultScale>Frames Per Second</ResultScale>
<Proportion>HIB</Proportion>
<SubTitle>1080p 8-bit YUV To HEVC Video Encode</SubTitle>
<Description>This is a test of the Intel Open Visual Cloud Scalable Video Technology SVT-VP9 CPU-based multi-threaded video encoder for the VP9 video format with a sample 1080p YUV video file. This test profile uses the Git snapshot of SVT-VP9.</Description>
<ResultScale>Frames Per Second</ResultScale>
<Proportion>HIB</Proportion>
<SubTitle>1080p 8-bit YUV To VP9 Video Encode</SubTitle>
<Description>This is a standard video encoding performance test of Google's libvpx library and the vpxenc command for the VP9/WebM format using a sample 1080p video.</Description>
<ResultScale>Frames Per Second</ResultScale>
<Proportion>HIB</Proportion>
<SubTitle>vpxenc VP9 1080p Video Encode</SubTitle>
<Description>AI Benchmark Alpha is a Python library for evaluating artificial intelligence (AI) performance on diverse hardware platforms and relies upon the TensorFlow machine learning library.</Description>
<Description>AI Benchmark Alpha is a Python library for evaluating artificial intelligence (AI) performance on diverse hardware platforms and relies upon the TensorFlow machine learning library.</Description>
<Description>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.</Description>
<Description>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.</Description>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.