Knowing how to measure your own computer performance gives you mighty system and network tuning powers. It’s also fun to run various benchmarks on commercial products because most of them forbid publishing any kind of benchmark results–but they can’t stop you from talking to friends. We’re going to take a look at the brand-new Phoronix Test Suite, which is so new the black tape and alligator clips are still visible. The Phoronix Test Suite is for testing hardware performance under Linux. It’s still very young and incomplete, but it’s worth getting acquainted with–it is based on the the scripts developed by the fine folks (mainly Michael Larabel, it seems) at Phoronix for hardware testing. Phoronix Test Suite is intended to be more than another benchmarking utility; it is an open, extensible platform for creating and customizing all kinds of Linux benchmarking.
Benchmarks are useful, but they’re not always precise. They aren’t exact matches to real-world use, so it’s no good getting all excited over small differences. There is a saying about lies, damned lies, and benchmarks. Presumably the ace Linux administrator is looking for trends, bottlenecks, and what happens when they make changes. What, you say, you mean the purpose isn’t to engage in endless arguments over the results, and rig the tests for bigger bragging rights? Well, you can if you want to. I’d rather get useful results.
There are two general categories of benchmarks: synthetic and application. Synthetic benchmarks place an artificial load on a component, like writing and reading a large number of ones and zeros to test CPU and RAM speeds. Application benchmarks measure the performance of real-world applications, such as databases and Web servers. Whatever you use, the more knowledge you have about how the tests operate the more useful your results will be.
PTS is a fast-moving work in progress, so you should grab the latest .tar.gz snapshot from Phoronix Test Suite downloads. It’s very easy to use. Unpack it into whatever directory you want to keep it in:
$ tar zxvf phoronix-test-suite.tar.gz
Then change to the new top-level directory–cd phoronix-test-suite–and run the system diagnostic command:
$ ./phoronix-test-suite diagnostics
This spits out your system architecture, and PTS version and file locations. ./phoronix-test-suite with no options displays a list of available commands. ./phoronix-test-suite system-information dumps your hardware information. Let’s see what else it can do:
$ ./phoronix-test-suite list-tests ================================= Phoronix Test Suite --Benchmarks ================================= [...] etqw--Enemy Territory: Quake Wars[Status: UNKNOWN, License: NON-FREE] fgl-glxgears--ATI fgl_glxgears[Status: VERIFIED, License: CLOSED] fract --FRACT [Status: BROKEN, License: FREE] $ ./phoronix-test-suite list-suites ================================= Phoronix Test Suite --Suites ================================= audio-encoding--Audio Encoding Test Suite[Benchmark Type: System] compilation --Timed Code Compilation Tests [Benchmark Type: Processor] gaming--Phoronix Test Suite For Gaming[Benchmark Type: Graphics] graphics --Phoronix Test Suite For Graphics [Benchmark Type: Graphics] [...]
“Verified” means it should work. “Broken” means it shouldn’t. “Unknown” means you have an opportunity to advance the development of PTS.
Let’s go ahead and run the Universe test suite. When you run a test or test suite for the first time, use the benchmark option because this installs or updates the tests, so running Universe should install everything you need:
$ ./phoronix-test-suite benchmark universe
This is going to take a long time, because it will download and compile many megabytes of files, so you might as well wander over to the Phoronix Test Suite Forums for the latest news and fixits. There isn’t much in the way of documentation yet–Phoronix Test Suite Released is helpful. You’ll also get useful information from running the list-tests and list-suites commands, and reading the scripts in phoronix-test-suite/pts/. For example, phoronix-test-suite/pts/benchmark-suites/universe.xml, once you wade through the XML tags, shows you which tests it runs.
After you have installed a new test or suite you can use the run option:
$ ./phoronix-test-suite run render-bench
Use the benchmark or install options to get updates. benchmark is equivalent to running install and then run.
When you run a test you can save the results with a name and a unique ID, which are anything you want, and at the end of the test display the results in a Web browser. The results are saved in ~/pts-test-results/, and you can see your saved tests with ./phoronix-test-suite list-results.
At the end of a test you will be asked if you want to upload your results to PTS Global Database for the world to see. You’ll get a unique global ID, like mine: http://global.phoronix-test-suite.com/index.php?k=profile&u=carla-15991-4099-28839. This is a valuable comparison and collaboration tool, and you can run a comparison with existing profiles like this:
$ ./phoronix-test-suite merge-results [your saved test name] [global ID] [new name for merged results]
$ ./phoronix-test-suite merge-results ramspeed2 carla-15991-4099-28839 merged-ramspeed
You can also run a new test that duplicates an existing profile like this:
$ ./phoronix-test-suite benchmark carla-15991-4099-28839
If you run into problems, and you probably will, visit the Phoronix Test Suite Forums for help.
The plan is to release PTS 1.0 (the current version is 0.3.1) later this year, with a nice graphical interface and polished features. Contributors are welcome; see Phoronix Test Suite Released, p.5 for details.