Whether you’re a DIY builder, a system administrator, or just a curious tech enthusiast, knowing how your PC performs under real‑world loads is essential. While commercial suites can be pricey, the open‑source world offers powerful, free alternatives that give you granular insight into CPU, GPU, and storage performance. In this guide we’ll walk through installing, configuring, and running a complete benchmark suite using the Phoronix Test Suite, sysbench, glmark2, and fio. By the end you’ll have reproducible results you can compare against online baselines or track over time.
What You’ll Need
- A PC running Windows 10/11 or any modern Linux distribution (Ubuntu, Fedora, Arch, etc.)
- Administrator or root access to install packages
- Internet connection for downloading test profiles and updates
- At least 5 GB of free disk space for test data and logs
- Basic familiarity with the command line
Step 1: Install the Phoronix Test Suite
The Phoronix Test Suite (PTS) is a cross‑platform benchmarking framework that aggregates dozens of open‑source tests. On Linux you can install it directly from the repositories:
sudo apt update && sudo apt install phoronix-test-suite
On Fedora:
sudo dnf install phoronix-test-suite
For Windows, download the latest installer .exe, run it, and add the installation folder to your PATH variable. Verify the installation:
phoronix-test-suite version
You should see a version string like Phoronix Test Suite v10.8.4. If the command fails, double‑check that the binary is on your PATH.
Step 2: Update Test Profiles and Calibrate
PTS uses “profiles” that describe how to run each benchmark. Before you start, fetch the latest profiles and perform a quick calibration so the suite can scale tests to your hardware:
phoronix-test-suite install all
This command downloads every available test – it may take 10‑15 minutes and several hundred megabytes of data. Once installed, run the calibration step:
phoronix-test-suite benchmark sysbench --calibrate
The calibration runs a short sysbench CPU test and records how many iterations your system can handle per second. The results are stored in ~/.phoronix-test-suite/ and used to auto‑adjust later tests, ensuring they finish in a reasonable time.
Step 3: Benchmark the CPU with sysbench
sysbench is a lightweight, open‑source benchmark that stresses the processor with a variety of workloads. To run a pure CPU test:
phoronix-test-suite benchmark sysbench --test-args="--cpu-max-prime=20000"
The --cpu-max-prime flag tells sysbench to calculate prime numbers up to 20 000, a common baseline. PTS will automatically run the test multiple times, calculate an average, and present a score in “events per second.” Record the score; you can compare it later against other CPUs on the Phoronix Open Benchmark Database.
Tip: If you want a more intensive run, increase the prime limit to 50 000, but expect the test to take several minutes.
Step 4: Benchmark the GPU with glmark2
glmark2 is an open‑source OpenGL benchmark that works on Linux, Windows (via MSYS2), and even macOS. Install it first:
# Ubuntu/Debian sudo apt install glmark2 # Fedora sudo dnf install glmark2
On Windows, install MSYS2, then run:
pacman -S mingw-w64-x86_64-glmark2
Run the benchmark in windowed mode to avoid full‑screen flicker:
glmark2 -s 1920x1080 -b offscreen
The -s flag sets the resolution, and -b offscreen disables the on‑screen FPS counter, giving a cleaner result. glmark2 will output a composite score (higher is better) along with individual test scores for texture rendering, geometry, and shader performance. Capture the output into a text file for later reference:
glmark2 -s 1920x1080 -b offscreen | tee glmark2_result.txt
Common pitfall: Running the test while other GPU‑intensive applications are open (e.g., web browsers with WebGL content) can skew results. Close all non‑essential programs before you start.
Step 5: Benchmark Storage with fio
fio (Flexible I/O Tester) is the de‑facto standard for measuring disk throughput and latency. Install it:
sudo apt install fio # Debian/Ubuntu sudo dnf install fio # Fedora
We’ll create a 4 GB test file on the drive you want to evaluate. Replace /mnt/testdrive with the mount point of your target SSD or HDD:
fio --name=seqread --filename=/mnt/testdrive/fio_testfile --size=4G --read=seq --bs=1M --iodepth=32 --direct=1 --runtime=60 --group_reporting
This command performs a sequential read test with 1 MiB block size and a queue depth of 32, reporting average throughput in MB/s and latency in microseconds. For a write test, change --read=seq to --write=seq. To assess random I/O (more relevant for OS workloads), run:
fio --name=randread --filename=/mnt/testdrive/fio_testfile --size=1G --rw=randread --bs=4K --iodepth=64 --direct=1 --runtime=60 --group_reporting
Remember to delete the test file afterwards to free space:
rm /mnt/testdrive/fio_testfile
Typical mistake: Running fio on a filesystem that has aggressive caching (like ZFS with default ARC) without the --direct=1 flag, which can produce unrealistically high throughput numbers. Always use --direct=1 for raw hardware measurements.
Step 6: Collect, Compare, and Visualize Results
After you’ve run the individual tests, PTS can aggregate them into a single, shareable result file. Use the result sub‑command:
phoronix-test-suite result-file-save my-pc-benchmark
This creates a .xml file in ~/.phoronix-test-suite/results/. You can upload it to the Phoronix Open Benchmark Database (OBD) for community comparison:
phoronix-test-suite upload-results my-pc-benchmark
Alternatively, generate a local HTML report:
phoronix-test-suite result-file-generate my-pc-benchmark
The generated my-pc-benchmark.html contains charts for each test, making it easy to spot bottlenecks at a glance. Keep a copy of the HTML file in a version‑controlled folder (e.g., a Git repo) so you can track performance changes after driver updates or hardware upgrades.
Step 7: Automate Recurring Benchmarks
For long‑term monitoring, schedule the suite to run weekly via cron (Linux) or Task Scheduler (Windows). Example cron entry that runs all three core tests and emails the HTML report:
0 3 * * 1 /usr/bin/phoronix-test-suite batch-run sysbench glmark2 fio --output=/tmp/benchmark.html && mail -s "Weekly PC Benchmark" [email protected] < /tmp/benchmark.html
On Windows, create a basic task that calls phoronix-test-suite.bat with the same arguments and uses the built‑in mail action or a PowerShell script to send the report. Automation helps you notice performance regression before it becomes a user‑visible issue.
Common Mistakes to Avoid
1. Running benchmarks on a thermally throttled system. Clean your fans and ensure proper airflow; otherwise CPU and GPU scores will be artificially low.
2. Leaving background services active. Disable Windows Update, antivirus real‑time scanning, and any mining or rendering software during tests.
3. Using the wrong test parameters. For SSDs, a 4 GB sequential test may fill the drive’s cache, inflating numbers. Use a file size at least twice the drive’s DRAM cache size for realistic results.
4. Skipping calibration. Without calibration, PTS may choose test durations that are too short to be meaningful on high‑end hardware.
5. Comparing scores from different test versions. Always note the PTS version and test profile version; a change in the test algorithm can shift scores dramatically.
Tips and Tricks
• Use CPU affinity. Pin sysbench to a single core to measure per‑core performance: taskset -c 0 phoronix-test-suite benchmark sysbench.
• Leverage GPU driver logs. Enable GL_DEBUG_OUTPUT for glmark2 to catch driver warnings that may affect scores.
• Store results in a database. Import the XML output into SQLite for quick trend analysis with simple SQL queries.
• Benchmark both idle and loaded states. Run a baseline after a cold boot, then repeat after launching a typical workload (e.g., a web browser with 20 tabs).
• Document hardware details. Include CPU model, GPU model, RAM speed, and storage type alongside scores; this context is crucial for readers who compare your results with theirs.
Frequently Asked Questions
Do I need a Linux system to use the Phoronix Test Suite?
No. PTS runs on Windows, Linux, and macOS, though some test profiles (like glmark2) have better support on Linux. On Windows you may need to install MSYS2 or Cygwin for certain utilities.
Can I benchmark a laptop’s battery performance with these tools?
While PTS focuses on raw performance, you can combine it with powerstat (Linux) or powercfg /energy (Windows) to capture power draw during a benchmark run. This gives you a watts‑per‑score metric useful for mobile devices.
How often should I run these benchmarks?
For a stable system, a monthly run is sufficient. If you frequently update drivers, BIOS, or overclock, consider weekly runs to catch regressions early.
Conclusion
Benchmarking with open‑source tools may require a few extra command‑line steps, but the payoff is a transparent, reproducible performance profile you can trust. By installing the Phoronix Test Suite, calibrating your environment, and running focused CPU, GPU, and storage tests with sysbench, glmark2, and fio, you gain actionable data without spending a dime. Remember to avoid common pitfalls—thermal throttling, background processes, and mismatched test parameters—and you’ll have a reliable baseline for future upgrades, driver updates, or troubleshooting sessions. Happy benchmarking!
Photo by Slejven Djurakovic on Unsplash




