CPU benchmark con sysbench

Discussioni sulla compatibilità dell'Hardware con linux, Drivers, ...

CPU benchmark con sysbench

Messaggioda Aki » 02/01/2020, 17:47

Ciao a tutti,

Il benckmarking dei computer è notoriamente materia molto complessa ed insidiosa per la difficoltà tecniche insite soprattutto nelle molteplici variabili di configurazione sia software che hardware di cui bisognerebbe tener conto. Ai fini di un confronto significativo sarebbe necessario standardizzare tutti i possibili elementi di variabilità (o tenerne conto nell'indicatore sintetico calcolato) e ciò è molto spesso difficile da realizzare.

Il progetto Debian con i propri repository rende disponibile strumenti di benchmarking, alcuni dei quali elencati a questo indirizzo (tramite debtags).

Tra di questi, con tutti i limiti del caso, uno strumento di benchmarking disponibile con Debian GNU/Linux è sysbench, disponibile per Debian Buster (stable) nei repository buster-backports. Questo tipo di benchmark, ad esempio, è utilizzato da alcuni autori per misurare le prestazioni di "Single Board Computer" (SBC, vedi, ad esempio, il canale YouTube Explaining Computers) che, come il Raspberry Pi si stanno diffondendo sempre più.

Potrebbe essere interessante, da questo punto di vista, acquisire qualche elemento di confronto tra come gli SBC di oggi con Debian Installato si avvicinano in termini di prestazioni a computer tradizionali oppure come le CPU dei diversi computer con Debian installato si posizionano tra di loro.

Il comando per eseguire un possibile benckmark è sotto riportato ed esegue il calcolo dei numeri primi fino ad un valore massimo entro 20000:
Codice: Seleziona tutto
sysbench --test=cpu --cpu-max-prime=20000  run


Ad esempio, su una installazione di Debian Buster (stable) con CPU x86 "Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz" risulta:
Codice: Seleziona tutto
$ cat /proc/cpuinfo | sort | uniq | grep "model name"
model name      : Intel(R) Core(TM)2 Duo CPU     P8400  @ 2.26GHz

$ sysbench --test=cpu --cpu-max-prime=20000 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time

Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:   351.47

General statistics:
    total time:                          10.0008s
    total number of events:              3516

Latency (ms):
         min:                                    2.77
         avg:                                    2.84
         max:                                    3.83
         95th percentile:                        2.97
         sum:                                 9989.58

Threads fairness:
    events (avg/stddev):           3516.0000/0.00
    execution time (avg/stddev):   9.9896/0.00

La CPU che ho provato ha 2 core e, con singolo thread, impiega circa 10 secondi per eseguire il calcolo (il risultato è analogo con due thread).

Per confronto, un Raspberry Pi 4 impiega circa 7 secondi (con quattro thread, uno per CPU) per completare il compito. E' interessante come, a livello di CPU, un RaspberryPi possa competere con una CPU Intel di poco più di un decennio fa, quanto meno nel calcolo dei numeri primi.

Vi andrebbe di verificare cosa risulta nelle vostre installazioni di Debian ed di inviare in questa discussione il risultato dei Vostri benchmark ? Per farlo, i comandi da eseguire sono, dopo aver installato sysbench:
Codice: Seleziona tutto
script bench.txt
cat /proc/cpuinfo | sort | uniq | grep "model name"
sysbench --test=cpu --cpu-max-prime=20000 run
exit

I risultati saranno nel file bench.txt
Aki
Global Moderator
Global Moderator
 
Messaggi: 8996
Iscritto il: 27/12/2007, 16:59

Re: CPU benchmark con sysbench

Messaggioda barlafuss » 02/01/2020, 21:27

Presente :-)
In allegato il file della mia instalazione (Debian Testing)
Allegati
bench.txt
mio file bench.txt
(1.45 KiB) Scaricato 36 volte
barlafuss
Full Member
Full Member
 
Messaggi: 123
Iscritto il: 21/03/2007, 13:03

Re: CPU benchmark con sysbench

Messaggioda gio14 » 04/01/2020, 1:43

Rilascio bullseye/sid 32-bit Kernel Linux 5.2.11 i686
Allegati
bench.txt
(1.4 KiB) Scaricato 31 volte
gio14
Full Member
Full Member
 
Messaggi: 175
Iscritto il: 25/09/2009, 0:22

Re: CPU benchmark con sysbench

Messaggioda Aki » 04/01/2020, 20:40

Ciao,

Ringraziando per la partecipazione, invio in allegato una prima parziale analisi.

Al fine di iniziare ad interpretare i risultati, è utile precisare, che la versione di sysbench disponibile da buster-backports e successive release di Debian esegue il test della CPU iterando per 10 secondi (default) il calcolo della sequenza dei numeri primi da 3 fino ad un massimo inferiore a quello specificato con il parametro --cpu-max-prime (20000, nel nostro esempio) oppure, se non specificato, 10000 di default.

Pertanto, per sysbench un "evento" (nel test della CPU) è l’effettuazione del calcolo di una sequenza di numeri primi: per esempio, un numero di eventi/secondo pari a 351 indica che sysbench ha eseguito per 351 volte il calcolo della sequenza di numeri primi (con i limiti sopra riportati) nel tempo di 1 secondo.

Nelle condizioni sopra indicate, l'indicatore di velocità è il numero di eventi/secondo.

Dai primi risultati, da una rapida analisi, sembrerebbe che:
a) la CPU#3 (la più veloce in termini di frequenza di clock “nominale”) ha completato il test con una velocità la cui differenza percentuale è di circa 18% inferiore rispetto alla CPU#1 (la più "lenta" in termini di frequenza di clock e con il kernel più "vecchio")
b) la CPU#2 (con kernel presumibilmente recente) è "solo" il 13% più veloce della CPU#1 (con il kernel più vecchio del gruppo di confronto).
c) la CPU#2 ha completato il test con una velocità superiore alla CPU#3 (che ha una frequenza di clock superiore a quella della CPU#2)

Naturalmente, ci sono altri aspetti da considerare: cosa vi viene in mente ?

Qualche altro frequentatore del forum avrebbe piacere di partecipare ?
Allegati
sysbench.zip
(10.53 KiB) Scaricato 26 volte
sysbench,png.png
sysbench,png.png (26.38 KiB) Osservato 1336 volte
Aki
Global Moderator
Global Moderator
 
Messaggi: 8996
Iscritto il: 27/12/2007, 16:59

Re: CPU benchmark con sysbench

Messaggioda barlafuss » 04/01/2020, 23:19

per completezza : kernel cpu #2 5.3.0-3-amd64
barlafuss
Full Member
Full Member
 
Messaggi: 123
Iscritto il: 21/03/2007, 13:03

Re: CPU benchmark con sysbench

Messaggioda gio14 » 06/01/2020, 23:58

bullseye/sid 64-bit Kernel Linux 5.3.0-3-amd64 x86_64
Allegati
bench.txt
(1.63 KiB) Scaricato 31 volte
gio14
Full Member
Full Member
 
Messaggi: 175
Iscritto il: 25/09/2009, 0:22

Re: CPU benchmark con sysbench

Messaggioda Aki » 07/01/2020, 21:43

Invio un aggiornamento sulla tabella di comparazione, sulla base della versione del kernel fornita da barlafuss e il nuovo benchmark con il kernel 5.3.0 fornito da gio14.

@gio14: è singolare che per CPU#4 solo il passaggio di versione del kernel da 5.2 a 5.3 e da architettura i686 a amd64 abbia determinato un aumento delle prestazioni da -18% a +42,5% (rispetto alla CPU#1): hai verificato eventuali fattori di confondimento durante l'esecuzione del primo test (ad esempio, la presenza simultanea di altre applicazione che consumavano tempo di calcolo) ?
Allegati
sysbench_20200107.png
sysbench_20200107.png (32.13 KiB) Osservato 1155 volte
sysbench.zip
(11.15 KiB) Scaricato 35 volte
Aki
Global Moderator
Global Moderator
 
Messaggi: 8996
Iscritto il: 27/12/2007, 16:59

Re: CPU benchmark con sysbench

Messaggioda gio14 » 08/01/2020, 1:48

@Aki
Fatto il test nelle stesse condizioni (nessuna applicazione attiva)
ripetuto diverse volte, sempre stesso risultato
in genere se faccio un utilizzo normale e anche se uso programmi cad 3d abbastanza spinti
non noto sostanziali differenze di velocità , noto una grande differenza
nella compilazione del kernel , con l'architettura amd64 il tempo è meno della metà
della architettura i686 (ovviamente stessa macchina e stesso disco)
gio14
Full Member
Full Member
 
Messaggi: 175
Iscritto il: 25/09/2009, 0:22

Re: CPU benchmark con sysbench

Messaggioda byte64 » 08/01/2020, 16:40

kernel 5.3.0-3-amd64 #1 SMP Debian 5.3.15-1 (2019-12-07) x86_64 GNU/Linux
bullseye/sid
Allegati
bench.txt
(1.77 KiB) Scaricato 32 volte
byte64
Sr. Member
Sr. Member
 
Messaggi: 401
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: CPU benchmark con sysbench

Messaggioda Aki » 11/01/2020, 15:40

gio14 ha scritto:@Aki:Fatto il test nelle stesse condizioni (nessuna applicazione attiva) ripetuto diverse volte, sempre stesso risultato in genere se faccio un utilizzo normale e anche se uso programmi cad 3d abbastanza spinti non noto sostanziali differenze di velocità , noto una grande differenza nella compilazione del kernel , con l'architettura amd64 il tempo è meno della metà della architettura i686 (ovviamente stessa macchina e stesso disco)

@gio14: grazie per il riscontro; per curiosità: di quanta memoria RAM dispone il Tuo PC ? Te lo chiedo perché la possibile differenza in tempi di esecuzione tra architetture i686 e amd64 per la compilazione del kernel potrebbe essere legata al diverso utilizzo della memoria da parte della due diverse architetture. La compilazione del kernel, infatti, è una attività molto onerosa in termini di utilizzo della RAM, soprattutto se eseguita con più processi contemporanei.

@byte64: grazie per aver contribuito con i dati relativi alla CPU Intel(R) Core(TM) I7-8750H CPU @ 2.20GHz, nella tabella aggiornata riportata come CPU#5.

La CPU#5, nello specifico benchmark, presenta un incremento di prestazioni di circa il 58% rispetto alla CPU#1 (Intel(R) Core(TM) 2 Duo CPU P8400 @ 2.26GHz) ed è, al momento, la CPU più performante nel gruppo che ha partecipato al benchmark. Da notare che questo incremento di prestazioni è su un intervallo temporale di 10 anni (la CPU#1 è stata commercializzata nel 2008, la CPU#5 nel 2018): non vi sembra un pò poco come incremento di prestazioni per tutto questo tempo ? La "prima legge_di_Moore" enuncia che:
La complessità di un microcircuito, misurata ad esempio tramite il numero di transistor per chip, raddoppia ogni 18 mesi (e quadruplica quindi ogni 3 anni).

A vostro avviso, stanti comunque le limitazioni del test, perché l'aumento di complessità non si traduce in maggiore aumento di prestazioni nel confronto tra CPU più e meno recenti ?

Naturalmente, ci sono altri aspetti da considerare: cosa vi viene in mente ?

nota: nulla osta se nella tabella aggiungo in colonna i nomi delle utenze che hanno fornito i dati ?
Allegati
sysbench_20200111.png
sysbench_20200111.png (38.35 KiB) Osservato 943 volte
sysbench.zip
(12.05 KiB) Scaricato 23 volte
Aki
Global Moderator
Global Moderator
 
Messaggi: 8996
Iscritto il: 27/12/2007, 16:59

Re: CPU benchmark con sysbench

Messaggioda barlafuss » 12/01/2020, 10:56

grazie per l'aggiornamento. Se puo' essere utile, il mio PC ha 8GB di RAM, disco fisso meccanico.
>> nota: nulla osta se nella tabella aggiungo in colonna i nomi delle utenze che hanno fornito i dati ?
Nessun problema da parte mia.
Saluti
barlafuss
Full Member
Full Member
 
Messaggi: 123
Iscritto il: 21/03/2007, 13:03

Re: CPU benchmark con sysbench

Messaggioda gio14 » 16/01/2020, 1:41

@Aki
Scusa il ritardo nella risposta, ho 16GB di ram
gio14
Full Member
Full Member
 
Messaggi: 175
Iscritto il: 25/09/2009, 0:22

Re: CPU benchmark con sysbench

Messaggioda byte64 » 16/01/2020, 10:27

Nessun problema per il nome utente nella tabella.
byte64
Sr. Member
Sr. Member
 
Messaggi: 401
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: CPU benchmark con sysbench

Messaggioda gio14 » 17/01/2020, 1:41

Nessun problema anche da parte mia per il nome utente nella tabella.
gio14
Full Member
Full Member
 
Messaggi: 175
Iscritto il: 25/09/2009, 0:22


Torna a Hardware

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti