Translate

Sunday, June 1, 2025

Phoronix Test Suite


Sometime there is the need to determine if a computer is "fast" and thus capable to run specific operations.

Is not easy to set up, run and interpret results of tests.
There are many way to do tests on machines, this one is open source, covers Linux, MacOs and Windows, is based on PHP so is highly portable and is quite complex to master just because is HUGE !

I collected in this article some of the direct experience learning and using this system to "assign a number" to a machine to understand if is decent or not.

What is it ?

Every operating system has some tools that allow to determine and measure some characteristics, like CPU speed, Networking, Memory management, etc.

 In order to have some numbers related to the performance I decided to install on the machine the Phoronix Test Suite.

This test suite can run on Linux, MacOS and Windows.
These notes are mostly about Linux systems since is what I mainly use, especially on the DreamQuest machine.
The plan is to install the same tests suite on :

  • DreamQuest machine
  • Dell Precision T3600 machine
  • MacOs machine
and then run the some tests on these machine and compare the results.

Installation

To start, go to the Pts github and clone it on the machine.
Open a terminal and digit : 

git clone https://github.com/phoronix-test-suite/phoronix-test-suite.git

Be sure to have installed PHP with some extensions, in my case no PHP was installed so :

sudo apt install php
sudo apt install php-xml

In case of MacOs install PHP using brew :

brew install php

On Linux, once cloned and PHP installed, go in the cloned project and :

sudo ./install-sh 

For MacOs :

sudo ./install_macos <somewhere-accessible>

On MacOs by default is trying to install in /usr but usually is forbidden, thus is necessary to install the suite somewhere else.

Usage

To use it, simply run : 

phoronix-test-suite  

command and if everything is OK (no errors or missing PHP extensions) will be possible to install some tests and execute them.

Note that for MacOs you must use the entire path indicating after the installation.

Tests 

The Phoronix allows to do a lot of different tests, unfortunately is not easy to obtain a single number indicating "how good" a computer us, so different tests need to be performed and eventually compared.
Tests can be added to the default ones, lot of configurations are possible (and eventually necessary) but the first goal is to easily run"something" on different machines and then trying to compare the results.

Btw, associated to the Phoronix suite there is a open source website, OpenBenchmarking.org that can collect the tests results and compare them with many other systems.
At the moment however I was unable to register to the website, it has some problems.  Will be material for another article.

Note ! When executing some tests, the first time is possible the suite will install libraries and other stuff

So to start the exploration, I choose to follow some interactive setting for tests, executing : 

$ phoronix-test-suite interactive

A menu appears and allow to execute different tests  (note, this example is from the Dell machine)

$ phoronix-test-suite interactive
Phoronix Test Suite v10.8.5
Interactive Benchmarking

PROCESSOR:                Intel Xeon E5-2670 0 @ 3.30GHz
    Core Count:           8                       
    Thread Count:         16                      
    Extensions:           SSE 4.2 + AVX           
    Cache Size:           20 MB                   
    Microcode:            0x621                   
    Core Family:          Sandy Bridge            
    Scaling Driver:       intel_cpufreq schedutil 
GRAPHICS:                 ASUS NVIDIA GeForce GT 710 2GB
    Frequency:            954/2505MHz       
    BAR1 / Visible vRAM:  N/A               
    OpenGL:               4.6.0             
    Display Driver:       NVIDIA 470.256.02 
    Monitor:              HP 22xi           
    Screen:               5760x1186         
MOTHERBOARD:              Dell Precision T3600 08HPGT
    BIOS Version:         A14                            
    Chipset:              Intel Xeon E5/Core             
    Audio:                Realtek ALC269VB               
    Network:              Intel 82579LM + D-Link RTL8139 
MEMORY:                   4 x 4GB DDR3-1333MT/s M393B5170EH1-CH9
DISK:                     2000GB CT2000BX500SSD1
                      + 2000GB Western Digital WD20EZAZ-00L
                      + 3001GB My Book 1230
    File-System:          ext4                          
    Mount Options:        errors=remount-ro relatime rw 
    Disk Scheduler:       MQ-DEADLINE                   
    Disk Details:         Block Size: 4096              
OPERATING SYSTEM:         Linuxmint 22.1
    Kernel:               6.8.0-64-generic (x86_64)                                                                                                                         
    Desktop:              Cinnamon 6.4.8                                                                                                                                    
    Display Server:       X Server 1.21.1.11                                                                                                                                
    Compiler:             GCC 13.3.0                                                                                                                                        
    Security:             gather_data_sampling: Not affected                                                                                                                
                          + itlb_multihit: KVM: Mitigation of Split huge pages                                                                                              
                          + l1tf: Mitigation of PTE Inversion; VMX: conditional cache flushes SMT vulnerable                                                                
                          + mds: Mitigation of Clear buffers; SMT vulnerable                                                                                                
                          + meltdown: Mitigation of PTI                                                                                                                     
                          + mmio_stale_data: Unknown: No mitigations                                                                                                        
                          + reg_file_data_sampling: Not affected                                                                                                            
                          + retbleed: Not affected                                                                                                                          
                          + spec_rstack_overflow: Not affected                                                                                                              
                          + spec_store_bypass: Mitigation of SSB disabled via prctl                                                                                         
                          + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization                                                              
                          + spectre_v2: Mitigation of Retpolines; IBPB: conditional; IBRS_FW; STIBP: conditional; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not affected 
                          + srbds: Not affected                                                                                                                             
                          + tsx_async_abort: Not affected                                                                                                                   



1:  Run A Test / Benchmark
2:  Run A Suite      [A Collection Of Tests]
3:  Run A Stress Test      [Concurrent Benchmarks For Heavy System Load]
4:  Show System Hardware / Software Information
5:  Show Available System Sensors
6:  List Available Tests
7:  List Recommended Tests
8:  Search Tests / Suites / Results
9:  Backup Results To Media Storage
10: Exit
Select Task: 


I did ask for a list of recommended suite tests.
A suite test is actually a group of tests built around some specific goals.
Here the list. (can be seen executing : 

$ phoronix-test-suite interactive

then selecting the choice 6 or 7 or directly, as in this example, the choice 2) :

Select Task: 2

1:  pts/audio-encoding
2:  pts/av1
3:  pts/bioinformatics
4:  pts/browsers
5:  pts/cad
6:  pts/chess
7:  pts/compilation
8:  pts/compression
9:  pts/cpu
10: pts/cpu-massive
11: pts/creator
12: pts/cryptocurrency
13: pts/cryptography
14: pts/database
15: pts/desktop-graphics
16: pts/disk
17: pts/electronic-design
18: pts/encoding
19: pts/finance
20: pts/game-dev
21: pts/hpc
22: pts/imaging
23: pts/internet-speed
24: pts/java
25: pts/java-opengl
26: pts/kernel
27: pts/linear-algebra
28: pts/llm
29: pts/machine-learning
30: pts/memory
31: pts/molecular-dynamics
32: pts/mpi
33: pts/network
34: pts/nvidia-gpu-compute
35: pts/ocr
36: pts/oneapi
37: pts/opencl
38: pts/opengl-demos
39: pts/productivity
40: pts/programmer
41: pts/python
42: pts/quantum-mechanics
43: pts/raytracing
44: pts/renderers
45: pts/scientific-computing
46: pts/sdr
47: pts/server
48: pts/server-cpu-tests
49: pts/speech
50: pts/steam
51: pts/telephony
52: pts/texture-compression
53: pts/unigine
54: pts/video-encoding
55: pts/vulkan-compute
56: pts/vulkan-rt
57: pts/workstation
58: pts/system
59: pts/processor
60: pts/disk
61: pts/graphics
62: pts/memory
63: pts/network
64: pts/os
65: pts/other

I choose 2 of them, running a suite (option 2 of the menu) select :
  • suite n. 9 - pts/cpu
    • it requires the installation of 16 tests
    • it takes about 5-6 hours to be completed
  • suite n. 40 - pts/programmer
    • it requires the installation of
    • it takes about 
Especially the first time expect LOT OF TIME to execute the test, because the huge download and installation of the tests.

I noticed that both of the suite chosen have some tests in common and also not necessarily all the tests are available on different machines.
For example on MacOs not all the CPU tests in the CPIU suite are available.
16 on Linux, 10 on MacOs.

In order to have a set of tests comparable between different machines, is necessary to build a suite test tha can target the "purpose" and "similar tests".

Purpose


One important thing to determine is the "purpose" of the tests.
The Phoronix Test Suite has hundreds of tests and "collection" of tests (the "suites") and each test measure some specific things.
For example some tests can determine how fast a CPU can be executing a standard set of operations, other tests can determine how fast the system access memory or hard disk, other tests can calculate how fast the machine perform some specific tasks (like graphic rendering, etc.).

So is important to determine "what" exactly we are going to measure, especially if the ultimate goal is to compare different machines.

A machine is a sum of hardware (matherboard/CPU/memory/drive/peripherals/etc.) and software (OS/type of OS/application/etc.)
Different tests are necessary to measure a "machine" rather than specific part of it.
Thus it is mandatory to clearly define the "purpose" of the test in order to have a meaningful comparison.

Conclusion


The idea is to build specific set of tests to determine about how good a machine can be.
The Phoronix Test Suite is a great starting point for this, a great tool and can be expanded in many ways, including the possibility to store results in an open source database online for further comparison between systems.
But some work is necessary to set up the system and prepare the right set of tests.

To sum up is necessary :
  • install the Phoronix Test Suite on all the systems to compare
  • pick up the right set of tests based on the test purpose
  • execute the tests on all the machine
  • store the results (possibly on the OpenBenchmarking.org server)
  • finally compare the results


Resources




No comments:

Post a Comment