How to benchmark your Linux system

There's no better way to know how your recent upgrade or system tweaks are paying off.

linux logo cup
Credit: Eduardo Quagliato via Flickr/Creative Commons

In the world of consumer electronics, benchmarks are everything. More than specs, or anecdotal accounts, and certainly more than marketing materials, benchmarks give you meaningful information about the capabilities of a given piece of hardware, be it a single subsystem—like a PC’s GPU—or several subsystems in concert.

Unfortunately, many common benchmarks (especially those built into games) only run in Windows. Cinebench, PCMark, 3DMark, and CrystalDiskMark are popular Windows tests, but have no Linux equivalent.

If you go out looking for PC benchmark results, there’s a very strong chance the tests won’t perfectly translate to performance under Linux, since they were likely run in Windows. This is particularly true if certain hardware has limited support in the Linux kernel. However, there are still plenty of tests you can run in Linux, and the vast majority of them are free.

Testing in Linux

Linux users can find an easy-to-use test for their systems in the Gnome Disks utility, which comes with both the Gnome 3 and Ubuntu’s Unity desktops. Though the utility is most often used to administer disk partitions and software RAID, it features a built-in benchmark. It’s pretty basic, but will suffice for a general overview. Simply search for Disks in Ubuntu’s dash (or Gnomes Activities panel) to find the utility.

disksutilitybench

The Disks utility benchmark running on the Gnome 3 desktop.

A quick search for benchmark in Ubuntu’s Software Center will yield a few interesting entries. The first will likely be the System Profiler and Benchmark application. This program is really useful for getting detailed system information via a GUI, but the benchmarks are a bit lacking and not necessarily indicative of real-world usage. There are six benchmarks total, all of which test the CPU. 

softwarecenter

There are several entries for benchmarking tools in Ubuntu’s Software Center.

The Software Center list will also include individual tests. These can be fine to use, but they can be tedious to open and configure manually. Keep your eye out for an entry called Phoronix Test Suite, or PTS for short. The Phoronix Test Suite is a powerful program that can run a single test, or an entire battery. PTS offers some built-in suites (collection of tests), or you can design your own suite. When tests are completed, you can choose to upload the test results to openbenchmarking.org, where other users can see your results and even run the exact same tests on their PC.

systemprofiler

The System Profiler application leaves a lot to be desired in the benchmarking 

The best part of PTS is the automation. Tests and suites are all defined in XML files that you can edit as you see fit. If you mess up while creating a custom suite on the command line, don’t worry about it; you can simply open the suite XML file located in the folder ~/.phoronix-test-suite/test-suites/local. When you run a test or suite for the first time, PTS will attempt to fetch the test for you. If a test requires a dependency, PTS will let you know, but will still allow you to continue. If the dependency is not installed, the test that requires it will not run.

ptsfetch

Phoronix Test Suite will attempt to download and install the test software the first time it runs.

Testing with the Dell XPS 13 Developer Edition

To show off what PTS can do, I ran a custom suite of tests on a 2015 Dell XPS 13 Developer Edition that came preloaded with Ubuntu Desktop 14.04 LTS.

To create the suite, I first installed Phoronix Test Suite, which required the packages php5-cli and php5-gd. Once PTS was installed, I created my suite using the command phoronix-test-suite build-suite. PTS presents a list of all the supported tests. Most of the tests are free to use, but some require purchase (mostly retail games like BioShock: Infinite), which I avoided.

My completed suite consists of 10 tests (though some tests run multiple times with different settings) that I felt reflect an average desktop experience. For instance I chose IOZone to test the read and write performance of storage devices; Unigen’s Heaven to test graphics performance; RAMspeed for memory; various encoding and decoding tests; a Linux kernal compilation; a test for file compression; and one for encryption.

Once I added all of the tests I wanted, I saved and exited, but left the terminal window open. Just to make sure everything was on the up-and-up, I opened the XML file to look for typos or tests that I might have added in error.

When everything checked out, I simply ran phoronix-test-suite run <suite name>. On the first attempt, PTS let me know that I needed to fulfill some dependencies, so I made sure to install the requisite packages. After that, PTS was all set to run the tests.

ptsgraphs

PTS graphs the results of the individual tests in a suite.

If you’re interested, you can check out the final results at openbenchmarking.org.

Once you have your benchmark results, you can use them as a baseline. When you swap hardware or make tweaks to your system settings, run the exact same tests again to measure the impact of that change. 

A few notes about benchmarking

Running benchmarks can seem straightforward at first, but there are plenty of things that can throw off your results. First off, it’s a good idea to keep a PC plugged in, as opposed to running on battery; turn off any power-saving options; and turn off its hibernate and sleep functions for the plugged-in power profile while running tests. (The exception would be if you’re specifically performing a battery run-down test.) It’s also a good idea to close any other open applications to maximize the RAM and CPU resources available for testing. If performing tests on your storage devices, make sure they have ample free space for the test files.

If you prefer to run tests outside of the Phoronix Test Suite, the important thing to remember is that the build of the test software and the console command used to run it remain the same across systems. Keeping copies of your test software and a list of the relevant commands on an external hard drive will save boatloads of time when it comes to testing, and will allow you to run tests on machines without an internet connection (provided you have any necessary dependencies on the drive as well). Always remember: Consistency is key to testing.

And finally, it's always important to know what benchmarks matter to you. If you’re a spreadsheet power user, you probably don’t care about gaming performance, and vise-versa. Design your tests for your needs, and you’ll gain better insight into just how well your machine is working for you.

To comment on this article and other PCWorld content, visit our Facebook page or our Twitter feed.
Related:
Shop Tech Products at Amazon
Notice to our Readers
We're now using social media to take your comments and feedback. Learn more about this here.