
Vous avez dit :
sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1274.88

General statistics:
    total time:                          10.0029s
    total number of events:              12755

Latency (ms):
         min:                                    2.86
         avg:                                    3.14
         max:                                   20.37
         95th percentile:                        4.10
         sum:                                39998.99

Threads fairness:
    events (avg/stddev):           3188.7500/80.13
    execution time (avg/stddev):   9.9997/0.00 peut tu m'expliquer en detail 
ChatGPT a dit :

Voici ce que signifie chaque ligne de ton test sysbench cpu et comment l’interpréter.
1. La commande

sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run

    cpu : tu lances le test CPU intégré à sysbench.

    --cpu-max-prime=20000 : pour chaque “événement”, sysbench calcule les nombres premiers jusqu’à 20 000. Plus cette valeur est grande, plus chaque événement est lourd.

    --threads=$(nproc) : tu utilises autant de threads que de cœurs logiques détectés par le système.
    Dans ton cas, sysbench affiche ensuite :

        Number of threads: 4

    Donc la machine a 4 cœurs logiques (ou tu as limité à 4).

2. Début du test

Prime numbers limit: 20000

Initializing worker threads...

Threads started!

    Prime numbers limit: 20000 confirme que chaque “événement” = calcul des nombres premiers jusqu’à 20 000.

    worker threads : sysbench lance 4 threads en parallèle.

    Chaque thread enchaîne ces calculs jusqu’à ce que la durée du test (par défaut 10 s) soit atteinte.

3. CPU speed – events per second

CPU speed:
    events per second:  1274.88

    Un event = “un passage complet de l’algorithme qui teste tous les nombres jusqu’à 20000 pour trouver les nombres premiers”.

    events per second: 1274.88 signifie :

        Au total, l’ensemble des 4 threads a réalisé environ 1 275 événements par seconde.

        Sur ~10 s, ça donne ~12 755 événements (on le voit plus bas).

On peut estimer le volume de calcul brut :

    1 événement ≈ 20 000 nombres testés.

    Nombre total d’événements : 12 755.

    Nombre approximatif de tests effectués :

        12 755 × 20 000 = 255 100 000 opérations de test de nombres (ordre de grandeur).

Ce n’est pas un benchmark “scientifique”, mais ça donne une idée des capacités de la machine sur un calcul entier simple monothread/multithread.
4. General statistics

General statistics:
    total time:                          10.0029s
    total number of events:              12755

    total time: 10.0029s : le test a duré 10 s (valeur par défaut), plus la petite dérive (0.0029 s).

    total number of events: 12755 : c’est le nombre total d’itérations (tous threads confondus) réalisées pendant ces 10 s.

Vérification rapide :

    12 755 événements / 10.0029 s ≈ 1 274.88 événements/s
    → cohérent avec la ligne events per second.

5. Latency

Latency (ms):
         min:                                    2.86
         avg:                                    3.14
         max:                                   20.37
         95th percentile:                        4.10
         sum:                                39998.99

Ici, la “latence” = le temps que met un événement à s’exécuter (calcul des primes jusqu’à 20000), mesuré pour chaque événement.

    min: 2.86 ms
    L’événement le plus rapide a pris 2,86 millisecondes.

    avg: 3.14 ms
    En moyenne, un événement dure 3,14 ms.

    max: 20.37 ms
    Le plus lent des événements a pris 20,37 ms.

        Cela peut être dû à une interruption, un scheduling du CPU, un autre processus qui se réveille, etc.

    95th percentile: 4.10 ms
    95 % des événements ont une durée ≤ 4,10 ms.

        Cela donne une idée de la stabilité du temps de calcul : la majorité des événements sont proches de 3–4 ms.

    sum: 39998.99 ms
    Somme de toutes les latences mesurées pour les événements.
    Ce chiffre est en millisecondes, donc ≈ 40 000 ms ≈ 40 s.

Pourquoi 40 s alors que le test dure 10 s ?

    Tu as 4 threads.

    Chaque thread a travaillé environ 10 s.

    4 threads × 10 s ≈ 40 s de temps CPU cumulé.
    → Ce “sum” est cohérent : c’est la somme du temps passé par tous les threads, pas seulement le temps “mur”.

6. Threads fairness (équité des threads)

Threads fairness:
    events (avg/stddev):           3188.7500/80.13
    execution time (avg/stddev):   9.9997/0.00

    events (avg/stddev): 3188.7500/80.13

        En moyenne, chaque thread a traité environ 3 188,75 événements.

        Avec un écart-type de ~80, ce qui signifie que les threads ont été assez bien équilibrés :

            Certains threads ont fait un peu plus, d’autres un peu moins, mais la différence reste faible.

    Vérification :

        3 188,75 événements/thread × 4 threads ≈ 12 755 événements → cohérent.

    execution time (avg/stddev): 9.9997/0.00

        Chaque thread a tourné en moyenne 9,9997 s, avec un écart-type à 0,00.

        Donc les 4 threads ont travaillé quasiment exactement la même durée, ce qui est normal sur ce type de test.

7. Comment interpréter ce résultat pour ta machine

En résumé :

    Ta machine (4 threads) réalise :

        Environ 1 275 itérations complètes de calcul de nombres premiers jusqu’à 20 000 par seconde.

        Soit ~255 millions de tests de nombres en ~10 secondes.

    La latence par tâche est stable : en moyenne 3 ms, 95 % des tâches en dessous de 4,1 ms.

    Répartition du travail :

        Les 4 threads sont bien utilisés (même temps d’exécution, nombre d’événements proche).

Ce test est surtout utile :

    Pour comparer avant/après (overclock, changement de noyau, options d’énergie, virtualisation, etc.).

    Pour comparer plusieurs machines entre elles en gardant exactement les mêmes paramètres (--cpu-max-prime, --threads, durée, etc.).

Si tu veux aller plus loin, on peut :

    Comparer ce résultat avec une autre machine.

    Tester avec d’autres valeurs de --cpu-max-prime (par ex. 10000 / 50000) pour voir l’impact.

    Lancer avec un seul thread (--threads=1) pour voir les performances monothread.

Vous avez dit :
quel sont donc les donnée importante a reterer de ce bench ?
ChatGPT a dit :

Voici les seules données réellement importantes à retenir dans un bench sysbench cpu, c’est-à-dire celles qui serviront à comparer des machines, évaluer une optimisation, ou diagnostiquer un problème CPU.
1. events per second (EPS) → INDICATEUR PRINCIPAL

events per second: 1274.88

C’est la métrique la plus importante.

    C’est le débit de calcul : combien d’itérations complètes (prime jusqu’à 20000) la machine exécute par seconde.

    Plus la valeur est haute, plus le CPU est rapide.

    C’est celle qu’on compare entre machines.

À retenir absolument.
2. total number of events

total number of events: 12755

    Confirme la cohérence du résultat.

    Utile pour valider que le test n’a pas eu de ralentissements majeurs.

3. latency avg + 95th percentile

avg latency: 3.14 ms
95th percentile: 4.10 ms

Ce sont les deux valeurs de latence importantes :

    avg donne la stabilité moyenne.

    95th percentile indique si le CPU a eu des “pics” de lenteur (interruptions, scheduling).

Si le 95th est proche de l’avg → CPU stable.
Si le 95th explose → le système est perturbé.
4. threads fairness

events (avg/stddev): 3188.75 / 80.13
execution time stddev: 0.00

À retenir uniquement si tu veux vérifier :

    que les threads ont travaillé équitablement,

    qu’un core n’était pas bridé ou occupé par un autre processus.

Écart-type faible → répartition normale.
5. (optionnel) Nombre de threads et niveau de charge

Number of threads: 4

À retenir uniquement pour contextualiser le benchmark.
On ne compare pas une machine à 4 threads avec une machine à 16 threads.
Résumé ultra-court : les 3 valeurs qui comptent
Donnée	Pourquoi c’est important
events per second	Vitesse globale du CPU (métrique clé)
latency avg / 95th	Stabilité du calcul et absence de perturbation
threads fairness	Vérifie que tous les cœurs ont été utilisés correctement
Si tu veux je peux te faire un tableau de comparaison pour d’autres machines que tu testes ensuite.
Vous avez dit :
et si je veut faire le test sur un seul thread ?
ChatGPT a dit :

Pour exécuter sysbench CPU sur un seul thread, tu utilises simplement :

sysbench cpu --cpu-max-prime=20000 --threads=1 run

Pourquoi faire un test 1 thread ?

Le test en thread unique mesure :

    la performance monothread pure,

    la qualité du core,

    l’impact de la fréquence CPU,

    la latence liée au scheduler,

    l’efficacité IPC (instructions par cycle).

C’est souvent plus représentatif des performances réelles dans :

    tâches Python,

    jeux vidéo,

    I/O filesystem,

    services web mono-worker,

    automatisations HA ou scripts,

    VM légères.

Ce que tu dois comparer dans un test 1 thread

Tu dois extraire ces données :

    events per second → métrique principale

    avg latency (ms)

    95th percentile latency

    max latency (pour repérer les “spikes”)

Le reste est secondaire.
Exemple de comparaison 1 thread vs multi-thread

Si tu veux, tu peux me donner ton résultat 1 thread et je te fais une analyse :

    performance monothread brute,

    scaling des performances (1 thread → 4 threads),

    efficacité CPU,

    éventuels problèmes thermiques ou de scheduling.

Si tu veux, je peux aussi te proposer un tableau type pour suivre tous tes benchmarks CPU sur tes machines Debian, Proxmox, NAS, VM, laptop et mini PC.
Vous avez dit :
pourquoi un tel ecart entre ce 2 commandes : sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1203.40

General statistics:
    total time:                          10.0006s
    total number of events:              12037

Latency (ms):
         min:                                    2.83
         avg:                                    3.32
         max:                                   24.05
         95th percentile:                        6.91
         sum:                                39995.46

Threads fairness:
    events (avg/stddev):           3009.2500/43.11
    execution time (avg/stddev):   9.9989/0.00

gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run 2>&1 | grep 'events per second'
    events per second:  1247.67
ChatGPT a dit :

Voici la raison exacte pour laquelle tu vois un écart entre :

    la commande (A)

sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run

→ 1203 events/sec

et

    la commande (B)

sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run 2>&1 | grep 'events per second'

→ 1247 events/sec

Cet écart est normal et s’explique par 3 facteurs cumulés.
1. sysbench relance le test à chaque commande

Chaque exécution de sysbench est un nouveau test, avec :

    une nouvelle initialisation,

    un nouvel état du CPU,

    une charge système potentiellement différente,

    une température différente,

    une fréquence CPU dynamique (Intel P-states),

    potentiellement des interruptions différentes.

Donc deux commandes successives ne donneront jamais exactement le même score.

Un écart de :

    3 à 5 % est totalement normal sur une machine “vivante”

    Ici : 1247.67 vs 1203.40 = +3.67 % → parfait, dans la norme.

2. L’utilisation de grep change parfois la sortie, mais pas le calcul

Important :

grep ne modifie pas le benchmark, il lit seulement le stdout après l’exécution du test.

Donc l’augmentation n’est pas causée par grep.

La cause = nouvelle exécution → nouvelles conditions du CPU.
3. Variations naturelles de fréquence CPU (Intel SpeedShift / Turbo Boost)

Sysbench CPU est un benchmark pur entier / calcul continu.

La fréquence du CPU peut varier :

    car il chauffe,

    car le scheduler Linux utilise d’autres tâches,

    car le Turbo Boost s’active/désactive,

    car l’état énergétique change (C-states),

    car l’alimentation varie (secteur vs batterie),

    parce que le CPU est revenu au repos entre deux commandes.

→ un CPU peut perdre 50 à 100 events/sec juste à cause du passage d’une fréquence à une autre.
4. Température CPU = impact direct sur les performances

Si la première commande chauffe le CPU, la seconde peut tourner à fréquence un peu plus basse, ou l’inverse.

Les écarts typiques :
Température	Fréquence	Impact
CPU froid	Turbo max	events/sec ↑
CPU chaud	Turbo réduit	events/sec ↓

Ici, ton écart est positif → le CPU était probablement un peu plus chaud ou occupé au premier test.
Synthèse : pourquoi l’écart existe ?

Parce que tu as lancé deux fois un benchmark complet.
Chaque lancement produit naturellement une variation de performance, due aux fluctuations :

    du scheduler,

    du Turbo Boost,

    de la température,

    du bruit système,

    des interruptions kernel.

L’écart de 3–4 % est parfaitement normal sur un CPU grand public.
Si tu veux une comparaison fiable

Il faut exécuter par exemple :

for i in {1..10}; do
  sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run | grep 'events per second'; 
done

Ensuite je te calcule automatiquement :

    moyenne

    écart-type

    min

    max

→ pour obtenir un score fiable de ta machine.

Si tu veux, je peux te donner le script complet + un tableau d’analyse.
Vous avez dit :
events per second:  1247.67 et  events (avg/stddev):           3009.2500/43.11 ?
ChatGPT a dit :

Les deux valeurs :

events per second: 1247.67

et

events (avg/stddev): 3009.2500/43.11

sont liées, mais elles ne représentent pas du tout la même chose.

Voici l’explication claire.
1. events per second = débit global de la machine

events per second: 1247.67

C’est le nombre total d’événements exécutés par seconde, en additionnant tous les threads.

Autrement dit :

events_per_second = total_events / total_time

Ce chiffre représente la performance totale.

Dans ton cas :

    ~1250 events/s pour les 4 threads combinés.

2. events (avg/stddev) = répartition par thread

events (avg/stddev): 3009.2500/43.11

Ce bloc indique :

    3009.25 = nombre d’événements par thread en moyenne

    43.11 = variation (écart-type) entre les threads

Donc chaque thread a traité environ 3009 événements durant les 10 secondes.
3. Vérifions que les deux chiffres concordent
Total events = avg events per thread × number of threads

Tu as 4 threads.

3009.25 × 4 = 12037 événements

Et sysbench affiche :

total number of events: 12037

→ C’est cohérent à 100 %
events per second = total_events / 10 s

12037 / 10 = 1203.7 events/s

Dans ton autre test :

events per second: 1247.67

Il faut comprendre que ce sont deux exécutions différentes, donc les valeurs changent légèrement à chaque test.

Mais la relation mathématique reste la même.
4. Synthèse simple
Valeur	Signification
events per second	Performance totale (tous threads combinés)
events (avg)	Nombre d’événements effectués par thread
events (stddev)	Écart entre les threads (équilibrage load-balancing)
5. Pourquoi les chiffres n'ont pas la même échelle ?

Parce que :

    events per second = événements/seconde

    events (avg) = événements en 10 secondes, par thread

Donc naturellement, les valeurs “avg per thread” sont beaucoup plus grandes (≈ 3000) que le débit instantané (≈ 1250/s).
Si tu veux, je peux te produire un schéma clair qui relie toutes les valeurs du benchmark pour bien visualiser les relations.
Vous avez dit :
gilles@lenovo-bureau:~/Documents/vscode$ lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
NAME     SIZE TYPE MOUNTPOINT
loop1   55,5M loop /snap/core18/2976
loop2   55,5M loop /snap/core18/2952
loop3   63,8M loop /snap/core20/2669
loop4  164,8M loop /snap/gnome-3-28-1804/198
loop5      4K loop /snap/bare/5
loop6   50,8M loop /snap/snapd/25202
loop7   91,7M loop /snap/gtk-common-themes/1535
loop8   56,5M loop /snap/mqtt-explorer/29
loop9   92,5M loop /snap/mqtt-explorer/31
loop10  50,9M loop /snap/snapd/25577
loop11  63,8M loop /snap/core20/2682
sda    447,1G disk 
├─sda1   7,4G part [SWAP]
├─sda2     1K part 
└─sda5 439,7G part /
sdb        0B disk 
ChatGPT a dit :

Voici l’analyse détaillée de ton lsblk et ce que signifient les lignes affichées.
1. Les périphériques loopX

loop1 ... loop11

Ce sont des images montées par Snap.
Elles ne sont pas de vrais disques.

Chaque snap installé crée une image squashfs montée comme un pseudo-disque en lecture seule.

Exemples de packages montés :
Loop	Taille	Package
loop1	55,5M	snap core18
loop3	63,8M	snap core20
loop4	164,8M	GNOME runtime
loop6	50,8M	snapd
loop8 / loop9	56,5M / 92,5M	MQTT Explorer

Normal sur Ubuntu / Debian avec Snap → rien à corriger.
2. Ton disque principal : sda

sda    447,1G disk 
├─sda1   7,4G part [SWAP]
├─sda2     1K part 
└─sda5 439,7G part /

Analyse :
sda = SSD/HDD de 447 Go

Tu peux obtenir le modèle avec :

sudo smartctl -i /dev/sda

sda1 = 7,4 Go → SWAP

Un swap de 7,4 Go est cohérent pour une machine avec 8 à 16 Go de RAM.
sda2 = 1K → partition de boot GRUB BIOS

La petite partition de 1K est une partition étendue / legacy utilisée par certains schémas MBR.
Tu peux l’ignorer.
sda5 = 439,7 Go → partition racine /

Toute ton installation Linux est dessus.
C’est une structure typique :

    table de partition MBR (dos)

    swap en primaire

    puis partition étendue contenant sda5

3. Le disque sdb = 0B

sdb        0B disk

Ça paraît bizarre, mais c’est normal dans deux cas :
Cas 1 : C’est un périphérique fantôme créé par le contrôleur

Certains contrôleurs SATA/USB listent un deuxième canal vide → lsblk le voit mais sans capacité.

→ Probable si tu n’as qu’un seul disque physique dans la machine.
Cas 2 : Une carte SD / clé USB mal reconnue

Un support mal connecté peut apparaître comme “0B”.
Cas 3 : Un port NVMe/SATA vide exposé par le BIOS

Très fréquent sur :

    Lenovo

    HP

    Dell

On voit sdb mais il n’y a rien dessus → 0B.
Si tu veux l’identifier, lance :

sudo dmesg | grep -i sdb

ou

sudo smartctl -i /dev/sdb

ou

sudo fdisk -l /dev/sdb

Si tout répond “no such device”, c’est bien un port vide.
4. Résumé simple et utile pour toi
Périphérique	Rôle	Commentaire
loop1–loop11	images snap	normal, ignorer
sda	disque principal	447 Go
sda1	swap	7.4 Go
sda5	racine Linux	439 Go ext4
sdb	périphérique fantôme	port SATA/NVMe non utilisé ou bug driver
Si tu veux, je peux te générer aussi :

    l’analyse SMART complète du disque sda,

    un diagnostic filesystem,

    l’état d’usure du SSD,

    un schéma ASCII clair de ton partitionnement.

Tu veux aller plus loin ?
Vous avez dit :
gilles@lenovo-bureau:~/Documents/vscode$ which sysbench fio iperf3 dmidecode lscpu free jq lsblk
/usr/bin/sysbench
/usr/bin/fio
/usr/bin/iperf3
/usr/bin/lscpu
/usr/bin/free
/usr/bin/jq
/usr/bin/lsblk
gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=10000 --threads=$(nproc) run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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


Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  3409.87

General statistics:
    total time:                          10.0005s
    total number of events:              34107

Latency (ms):
         min:                                    1.10
         avg:                                    1.17
         max:                                   15.92
         95th percentile:                        1.23
         sum:                                39987.41

Threads fairness:
    events (avg/stddev):           8526.7500/114.76
    execution time (avg/stddev):   9.9969/0.00

gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1274.88

General statistics:
    total time:                          10.0029s
    total number of events:              12755

Latency (ms):
         min:                                    2.86
         avg:                                    3.14
         max:                                   20.37
         95th percentile:                        4.10
         sum:                                39998.99

Threads fairness:
    events (avg/stddev):           3188.7500/80.13
    execution time (avg/stddev):   9.9997/0.00

gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=10000 --threads=$(nproc) run 2>&1 | grep 'events per second'
    events per second:  3371.59
gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=20000 --threads=1 run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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:   357.09

General statistics:
    total time:                          10.0002s
    total number of events:              3572

Latency (ms):
         min:                                    2.70
         avg:                                    2.80
         max:                                    4.75
         95th percentile:                        2.91
         sum:                                 9997.51

Threads fairness:
    events (avg/stddev):           3572.0000/0.00
    execution time (avg/stddev):   9.9975/0.00

gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run 2>&1 | grep 'events per second'
    events per second:  1209.68
gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run 2>&1 | grep 'events per second'
    events per second:  1222.35
gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=10000 --threads=$(nproc) run 2>&1 | grep 'events per second'
    events per second:  3286.23
gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1203.40

General statistics:
    total time:                          10.0006s
    total number of events:              12037

Latency (ms):
         min:                                    2.83
         avg:                                    3.32
         max:                                   24.05
         95th percentile:                        6.91
         sum:                                39995.46

Threads fairness:
    events (avg/stddev):           3009.2500/43.11
    execution time (avg/stddev):   9.9989/0.00

gilles@lenovo-bureau:~/Documents/vscode$ sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run 2>&1 | grep 'events per second'
    events per second:  1247.67
gilles@lenovo-bureau:~/Documents/vscode$ sysbench memory --memory-block-size=1M --memory-total-size=512M run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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


Running memory speed test with the following options:
  block size: 1024KiB
  total size: 512MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 512 (13806.03 per second)

512.00 MiB transferred (13806.03 MiB/sec)


General statistics:
    total time:                          0.0351s
    total number of events:              512

Latency (ms):
         min:                                    0.06
         avg:                                    0.07
         max:                                    2.47
         95th percentile:                        0.07
         sum:                                   34.40

Threads fairness:
    events (avg/stddev):           512.0000/0.00
    execution time (avg/stddev):   0.0344/0.00

gilles@lenovo-bureau:~/Documents/vscode$ sysbench memory --memory-block-size=1M --memory-total-size=1G run
sysbench 1.0.20 (using system LuaJIT 2.1.1700206165)

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


Running memory speed test with the following options:
  block size: 1024KiB
  total size: 1024MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 1024 (15213.54 per second)

1024.00 MiB transferred (15213.54 MiB/sec)


General statistics:
    total time:                          0.0645s
    total number of events:              1024

Latency (ms):
         min:                                    0.06
         avg:                                    0.06
         max:                                    0.11
         95th percentile:                        0.07
         sum:                                   63.82

Threads fairness:
    events (avg/stddev):           1024.0000/0.00
    execution time (avg/stddev):   0.0638/0.00

gilles@lenovo-bureau:~/Documents/vscode$ sysbench memory --memory-block-size=1M --memory-total-size=512M run 2>&1 | grep 'MiB/sec'
512.00 MiB transferred (13200.66 MiB/sec)
gilles@lenovo-bureau:~/Documents/vscode$ fio --name=seqread --ioengine=libaio --rw=read --bs=1M --size=1G --numjobs=1 --direct=1 --filename=/tmp/fio-test-file
seqread: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=1
fio-3.39
Starting 1 process
seqread: Laying out IO file (1 file / 1024MiB)

seqread: (groupid=0, jobs=1): err= 0: pid=187410: Sun Dec  7 18:59:47 2025
  read: IOPS=2592, BW=2592MiB/s (2718MB/s)(1024MiB/395msec)
    slat (usec): min=117, max=23346, avg=380.74, stdev=1290.59
    clat (nsec): min=977, max=26622, avg=2359.69, stdev=1741.78
     lat (usec): min=118, max=23357, avg=383.09, stdev=1291.52
    clat percentiles (nsec):
     |  1.00th=[ 1128],  5.00th=[ 1256], 10.00th=[ 1352], 20.00th=[ 1464],
     | 30.00th=[ 1592], 40.00th=[ 1720], 50.00th=[ 1880], 60.00th=[ 2096],
     | 70.00th=[ 2352], 80.00th=[ 2736], 90.00th=[ 3440], 95.00th=[ 5088],
     | 99.00th=[ 9536], 99.50th=[10688], 99.90th=[18304], 99.95th=[26496],
     | 99.99th=[26496]
  lat (nsec)   : 1000=0.20%
  lat (usec)   : 2=55.27%, 4=37.11%, 10=6.54%, 20=0.78%, 50=0.10%
  cpu          : usr=0.00%, sys=56.60%, ctx=1038, majf=0, minf=263
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=1024,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: bw=2592MiB/s (2718MB/s), 2592MiB/s-2592MiB/s (2718MB/s-2718MB/s), io=1024MiB (1074MB), run=395-395msec
gilles@lenovo-bureau:~/Documents/vscode$ fio --name=seqwrite --ioengine=libaio --rw=write --bs=1M --size=1G --numjobs=1 --direct=1 --filename=/tmp/fio-test-file
seqwrite: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=1
fio-3.39
Starting 1 process

seqwrite: (groupid=0, jobs=1): err= 0: pid=187837: Sun Dec  7 19:00:17 2025
  write: IOPS=1432, BW=1432MiB/s (1502MB/s)(1024MiB/715msec); 0 zone resets
    slat (usec): min=204, max=11961, avg=694.16, stdev=1520.00
    clat (nsec): min=1065, max=17330, avg=2072.35, stdev=1337.13
     lat (usec): min=206, max=11969, avg=696.24, stdev=1521.09
    clat percentiles (nsec):
     |  1.00th=[ 1112],  5.00th=[ 1224], 10.00th=[ 1288], 20.00th=[ 1400],
     | 30.00th=[ 1480], 40.00th=[ 1576], 50.00th=[ 1688], 60.00th=[ 1816],
     | 70.00th=[ 2008], 80.00th=[ 2256], 90.00th=[ 2832], 95.00th=[ 4704],
     | 99.00th=[ 7136], 99.50th=[ 8512], 99.90th=[13632], 99.95th=[17280],
     | 99.99th=[17280]
   bw (  KiB/s): min=917504, max=917504, per=62.56%, avg=917504.00, stdev= 0.00, samples=1
   iops        : min=  896, max=  896, avg=896.00, stdev= 0.00, samples=1
  lat (usec)   : 2=69.34%, 4=22.75%, 10=7.62%, 20=0.29%
  cpu          : usr=1.68%, sys=56.02%, ctx=2531, majf=0, minf=8
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,1024,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=1432MiB/s (1502MB/s), 1432MiB/s-1432MiB/s (1502MB/s-1502MB/s), io=1024MiB (1074MB), run=715-715msec
gilles@lenovo-bureau:~/Documents/vscode$ fio --name=randrw --ioengine=libaio --rw=randrw --bs=4k --size=100M --numjobs=1 --direct=1 --filename=/tmp/fio-test-file
randrw: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.39
Starting 1 process

randrw: (groupid=0, jobs=1): err= 0: pid=188034: Sun Dec  7 19:00:29 2025
  read: IOPS=175k, BW=685MiB/s (718MB/s)(50.0MiB/73msec)
    slat (nsec): min=1268, max=18616, avg=1555.05, stdev=490.87
    clat (nsec): min=676, max=14956, avg=734.49, stdev=251.65
     lat (nsec): min=1993, max=26902, avg=2289.55, stdev=581.73
    clat percentiles (nsec):
     |  1.00th=[  692],  5.00th=[  700], 10.00th=[  708], 20.00th=[  716],
     | 30.00th=[  716], 40.00th=[  716], 50.00th=[  724], 60.00th=[  724],
     | 70.00th=[  732], 80.00th=[  740], 90.00th=[  748], 95.00th=[  764],
     | 99.00th=[  820], 99.50th=[  860], 99.90th=[ 5216], 99.95th=[ 8096],
     | 99.99th=[ 8256]
  write: IOPS=175k, BW=685MiB/s (718MB/s)(50.0MiB/73msec); 0 zone resets
    slat (nsec): min=1326, max=67794, avg=1571.91, stdev=710.30
    clat (nsec): min=679, max=32515, avg=735.70, stdev=442.05
     lat (nsec): min=2044, max=70714, avg=2307.61, stdev=872.94
    clat percentiles (nsec):
     |  1.00th=[  692],  5.00th=[  700], 10.00th=[  700], 20.00th=[  708],
     | 30.00th=[  716], 40.00th=[  716], 50.00th=[  716], 60.00th=[  724],
     | 70.00th=[  724], 80.00th=[  732], 90.00th=[  748], 95.00th=[  764],
     | 99.00th=[  804], 99.50th=[  844], 99.90th=[ 7968], 99.95th=[ 8256],
     | 99.99th=[21888]
  lat (nsec)   : 750=91.15%, 1000=8.63%
  lat (usec)   : 2=0.11%, 4=0.01%, 10=0.09%, 20=0.01%, 50=0.01%
  cpu          : usr=36.11%, sys=58.33%, ctx=3, majf=0, minf=10
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=12800,12800,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: bw=685MiB/s (718MB/s), 685MiB/s-685MiB/s (718MB/s-718MB/s), io=50.0MiB (52.4MB), run=73-73msec
  WRITE: bw=685MiB/s (718MB/s), 685MiB/s-685MiB/s (718MB/s-718MB/s), io=50.0MiB (52.4MB), run=73-73msec
gilles@lenovo-bureau:~/Documents/vscode$ fio --name=test --ioengine=libaio --rw=randrw --bs=4k --size=100M --numjobs=1 --direct=1 --filename=/tmp/fio-test-file --output-format=json
{
  "fio version" : "fio-3.39",
  "timestamp" : 1765130445,
  "timestamp_ms" : 1765130445593,
  "time" : "Sun Dec  7 19:00:45 2025",
  "jobs" : [
    {
      "jobname" : "test",
      "groupid" : 0,
      "job_start" : 1765130445203,
      "error" : 0,
      "eta" : 2147483647,
      "elapsed" : 1,
      "job options" : {
        "name" : "test",
        "ioengine" : "libaio",
        "rw" : "randrw",
        "bs" : "4k",
        "size" : "100M",
        "numjobs" : "1",
        "direct" : "1",
        "filename" : "/tmp/fio-test-file"
      },
      "read" : {
        "io_bytes" : 52428800,
        "io_kbytes" : 51200,
        "bw_bytes" : 728177777,
        "bw" : 711111,
        "iops" : 177777.777778,
        "runtime" : 72,
        "total_ios" : 12800,
        "short_ios" : 0,
        "drop_ios" : 0,
        "slat_ns" : {
          "min" : 1253,
          "max" : 25366,
          "mean" : 1558.008203,
          "stddev" : 521.711230,
          "N" : 12800
        },
        "clat_ns" : {
          "min" : 679,
          "max" : 19250,
          "mean" : 729.195469,
          "stddev" : 281.986042,
          "N" : 12800,
          "percentile" : {
            "1.000000" : 692,
            "5.000000" : 700,
            "10.000000" : 700,
            "20.000000" : 708,
            "30.000000" : 708,
            "40.000000" : 716,
            "50.000000" : 716,
            "60.000000" : 716,
            "70.000000" : 724,
            "80.000000" : 724,
            "90.000000" : 740,
            "95.000000" : 764,
            "99.000000" : 812,
            "99.500000" : 860,
            "99.900000" : 8032,
            "99.950000" : 8096,
            "99.990000" : 8256
          }
        },
        "lat_ns" : {
          "min" : 1966,
          "max" : 26734,
          "mean" : 2287.203672,
          "stddev" : 621.748655,
          "N" : 12800
        },
        "bw_min" : 0,
        "bw_max" : 0,
        "bw_agg" : 0.000000,
        "bw_mean" : 0.000000,
        "bw_dev" : 0.000000,
        "bw_samples" : 0,
        "iops_min" : 0,
        "iops_max" : 0,
        "iops_mean" : 0.000000,
        "iops_stddev" : 0.000000,
        "iops_samples" : 0
      },
      "write" : {
        "io_bytes" : 52428800,
        "io_kbytes" : 51200,
        "bw_bytes" : 728177777,
        "bw" : 711111,
        "iops" : 177777.777778,
        "runtime" : 72,
        "total_ios" : 12800,
        "short_ios" : 0,
        "drop_ios" : 0,
        "slat_ns" : {
          "min" : 1321,
          "max" : 24501,
          "mean" : 1569.442187,
          "stddev" : 501.083557,
          "N" : 12800
        },
        "clat_ns" : {
          "min" : 678,
          "max" : 17589,
          "mean" : 729.085625,
          "stddev" : 345.327276,
          "N" : 12800,
          "percentile" : {
            "1.000000" : 692,
            "5.000000" : 692,
            "10.000000" : 700,
            "20.000000" : 700,
            "30.000000" : 708,
            "40.000000" : 708,
            "50.000000" : 708,
            "60.000000" : 716,
            "70.000000" : 716,
            "80.000000" : 724,
            "90.000000" : 740,
            "95.000000" : 756,
            "99.000000" : 812,
            "99.500000" : 900,
            "99.900000" : 8096,
            "99.950000" : 8160,
            "99.990000" : 15808
          }
        },
        "lat_ns" : {
          "min" : 2025,
          "max" : 25994,
          "mean" : 2298.527813,
          "stddev" : 629.810410,
          "N" : 12800
        },
        "bw_min" : 0,
        "bw_max" : 0,
        "bw_agg" : 0.000000,
        "bw_mean" : 0.000000,
        "bw_dev" : 0.000000,
        "bw_samples" : 0,
        "iops_min" : 0,
        "iops_max" : 0,
        "iops_mean" : 0.000000,
        "iops_stddev" : 0.000000,
        "iops_samples" : 0
      },
      "trim" : {
        "io_bytes" : 0,
        "io_kbytes" : 0,
        "bw_bytes" : 0,
        "bw" : 0,
        "iops" : 0.000000,
        "runtime" : 0,
        "total_ios" : 0,
        "short_ios" : 0,
        "drop_ios" : 0,
        "slat_ns" : {
          "min" : 0,
          "max" : 0,
          "mean" : 0.000000,
          "stddev" : 0.000000,
          "N" : 0
        },
        "clat_ns" : {
          "min" : 0,
          "max" : 0,
          "mean" : 0.000000,
          "stddev" : 0.000000,
          "N" : 0
        },
        "lat_ns" : {
          "min" : 0,
          "max" : 0,
          "mean" : 0.000000,
          "stddev" : 0.000000,
          "N" : 0
        },
        "bw_min" : 0,
        "bw_max" : 0,
        "bw_agg" : 0.000000,
        "bw_mean" : 0.000000,
        "bw_dev" : 0.000000,
        "bw_samples" : 0,
        "iops_min" : 0,
        "iops_max" : 0,
        "iops_mean" : 0.000000,
        "iops_stddev" : 0.000000,
        "iops_samples" : 0
      },
      "sync" : {
        "total_ios" : 0,
        "lat_ns" : {
          "min" : 0,
          "max" : 0,
          "mean" : 0.000000,
          "stddev" : 0.000000,
          "N" : 0
        }
      },
      "job_runtime" : 71,
      "usr_cpu" : 32.394366,
      "sys_cpu" : 64.788732,
      "ctx" : 0,
      "majf" : 0,
      "minf" : 10,
      "iodepth_level" : {
        "1" : 100.000000,
        "2" : 0.000000,
        "4" : 0.000000,
        "8" : 0.000000,
        "16" : 0.000000,
        "32" : 0.000000,
        ">=64" : 0.000000
      },
      "iodepth_submit" : {
        "0" : 0.000000,
        "4" : 100.000000,
        "8" : 0.000000,
        "16" : 0.000000,
        "32" : 0.000000,
        "64" : 0.000000,
        ">=64" : 0.000000
      },
      "iodepth_complete" : {
        "0" : 0.000000,
        "4" : 100.000000,
        "8" : 0.000000,
        "16" : 0.000000,
        "32" : 0.000000,
        "64" : 0.000000,
        ">=64" : 0.000000
      },
      "latency_ns" : {
        "2" : 0.000000,
        "4" : 0.000000,
        "10" : 0.000000,
        "20" : 0.000000,
        "50" : 0.000000,
        "100" : 0.000000,
        "250" : 0.000000,
        "500" : 0.000000,
        "750" : 92.949219,
        "1000" : 6.773438
      },
      "latency_us" : {
        "2" : 0.152344,
        "4" : 0.000000,
        "10" : 0.109375,
        "20" : 0.015625,
        "50" : 0.000000,
        "100" : 0.000000,
        "250" : 0.000000,
        "500" : 0.000000,
        "750" : 0.000000,
        "1000" : 0.000000
      },
      "latency_ms" : {
        "2" : 0.000000,
        "4" : 0.000000,
        "10" : 0.000000,
        "20" : 0.000000,
        "50" : 0.000000,
        "100" : 0.000000,
        "250" : 0.000000,
        "500" : 0.000000,
        "750" : 0.000000,
        "1000" : 0.000000,
        "2000" : 0.000000,
        ">=2000" : 0.000000
      },
      "latency_depth" : 1,
      "latency_target" : 0,
      "latency_percentile" : 100.000000,
      "latency_window" : 0
    }
  ]
}
gilles@lenovo-bureau:~/Documents/vscode$ rm -f /tmp/fio-test-file
gilles@lenovo-bureau:~/Documents/vscode$ iperf3 -c 10.0.0.50 -t 5
iperf3: error - unable to connect to server - server may have stopped running or use a different port, firewall issue, etc.: Connection refused
gilles@lenovo-bureau:~/Documents/vscode$ iperf3 -c 10.0.0.50 -t 5
Connecting to host 10.0.0.50, port 5201
[  5] local 10.0.1.169 port 34042 connected to 10.0.0.50 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  53.1 MBytes   445 Mbits/sec    1    375 KBytes       
[  5]   1.00-2.00   sec  57.0 MBytes   478 Mbits/sec    0    477 KBytes       
[  5]   2.00-3.00   sec  60.8 MBytes   510 Mbits/sec    0    566 KBytes       
[  5]   3.00-4.00   sec  62.6 MBytes   525 Mbits/sec    0    645 KBytes       
[  5]   4.00-5.00   sec  61.6 MBytes   515 Mbits/sec    0    716 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-5.00   sec   296 MBytes   496 Mbits/sec    1            sender
[  5]   0.00-5.01   sec   293 MBytes   491 Mbits/sec                  receiver

iperf Done.
gilles@lenovo-bureau:~/Documents/vscode$ iperf3 -c 10.0.0.50 -t 5 -R
Connecting to host 10.0.0.50, port 5201
Reverse mode, remote host 10.0.0.50 is sending
[  5] local 10.0.1.169 port 45146 connected to 10.0.0.50 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  49.6 MBytes   416 Mbits/sec                  
[  5]   1.00-2.00   sec  48.1 MBytes   404 Mbits/sec                  
[  5]   2.00-3.00   sec  45.9 MBytes   385 Mbits/sec                  
[  5]   3.00-4.00   sec  51.5 MBytes   432 Mbits/sec                  
[  5]   4.00-5.00   sec  51.0 MBytes   428 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-5.01   sec   249 MBytes   417 Mbits/sec    0            sender
[  5]   0.00-5.00   sec   246 MBytes   413 Mbits/sec                  receiver

iperf Done.
gilles@lenovo-bureau:~/Documents/vscode$ iperf3 -c 10.0.0.50 -t 5 -J
{
	"start":	{
		"connected":	[{
				"socket":	5,
				"local_host":	"10.0.1.169",
				"local_port":	50206,
				"remote_host":	"10.0.0.50",
				"remote_port":	5201
			}],
		"version":	"iperf 3.18",
		"system_info":	"Linux lenovo-bureau 6.12.57+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05) x86_64",
		"timestamp":	{
			"time":	"Sun, 07 Dec 2025 18:02:43 GMT",
			"timesecs":	1765130563
		},
		"connecting_to":	{
			"host":	"10.0.0.50",
			"port":	5201
		},
		"cookie":	"ejecghjijivkeodhyn5viyfm2nafnaz443zx",
		"tcp_mss_default":	1448,
		"target_bitrate":	0,
		"fq_rate":	0,
		"sock_bufsize":	0,
		"sndbuf_actual":	16384,
		"rcvbuf_actual":	131072,
		"test_start":	{
			"protocol":	"TCP",
			"num_streams":	1,
			"blksize":	131072,
			"omit":	0,
			"duration":	5,
			"bytes":	0,
			"blocks":	0,
			"reverse":	0,
			"tos":	0,
			"target_bitrate":	0,
			"bidir":	0,
			"fqrate":	0,
			"interval":	1
		}
	},
	"intervals":	[{
			"streams":	[{
					"socket":	5,
					"start":	0,
					"end":	1.001087,
					"seconds":	1.001086950302124,
					"bytes":	39452672,
					"bits_per_second":	315278683.73945612,
					"retransmits":	0,
					"snd_cwnd":	1811448,
					"snd_wnd":	2893824,
					"rtt":	58187,
					"rttvar":	2322,
					"pmtu":	1500,
					"omitted":	false,
					"sender":	true
				}],
			"sum":	{
				"start":	0,
				"end":	1.001087,
				"seconds":	1.001086950302124,
				"bytes":	39452672,
				"bits_per_second":	315278683.73945612,
				"retransmits":	0,
				"omitted":	false,
				"sender":	true
			}
		}, {
			"streams":	[{
					"socket":	5,
					"start":	1.001087,
					"end":	2.000814,
					"seconds":	0.99972701072692871,
					"bytes":	30015488,
					"bits_per_second":	240189473.1496745,
					"retransmits":	102,
					"snd_cwnd":	2112632,
					"snd_wnd":	6225920,
					"rtt":	54365,
					"rttvar":	4457,
					"pmtu":	1500,
					"omitted":	false,
					"sender":	true
				}],
			"sum":	{
				"start":	1.001087,
				"end":	2.000814,
				"seconds":	0.99972701072692871,
				"bytes":	30015488,
				"bits_per_second":	240189473.1496745,
				"retransmits":	102,
				"omitted":	false,
				"sender":	true
			}
		}, {
			"streams":	[{
					"socket":	5,
					"start":	2.000814,
					"end":	3.000798,
					"seconds":	0.9999840259552002,
					"bytes":	32899072,
					"bits_per_second":	263196780.31715995,
					"retransmits":	0,
					"snd_cwnd":	2321144,
					"snd_wnd":	6225920,
					"rtt":	63651,
					"rttvar":	965,
					"pmtu":	1500,
					"omitted":	false,
					"sender":	true
				}],
			"sum":	{
				"start":	2.000814,
				"end":	3.000798,
				"seconds":	0.9999840259552002,
				"bytes":	32899072,
				"bits_per_second":	263196780.31715995,
				"retransmits":	0,
				"omitted":	false,
				"sender":	true
			}
		}, {
			"streams":	[{
					"socket":	5,
					"start":	3.000798,
					"end":	4.000786,
					"seconds":	0.9999880194664,
					"bytes":	45350912,
					"bits_per_second":	362811642.67707551,
					"retransmits":	0,
					"snd_cwnd":	2503592,
					"snd_wnd":	6225920,
					"rtt":	42059,
					"rttvar":	1399,
					"pmtu":	1500,
					"omitted":	false,
					"sender":	true
				}],
			"sum":	{
				"start":	3.000798,
				"end":	4.000786,
				"seconds":	0.9999880194664,
				"bytes":	45350912,
				"bits_per_second":	362811642.67707551,
				"retransmits":	0,
				"omitted":	false,
				"sender":	true
			}
		}, {
			"streams":	[{
					"socket":	5,
					"start":	4.000786,
					"end":	5.001494,
					"seconds":	1.0007079839706421,
					"bytes":	56754176,
					"bits_per_second":	453712187.04428768,
					"retransmits":	0,
					"snd_cwnd":	2645496,
					"snd_wnd":	6225920,
					"rtt":	47457,
					"rttvar":	586,
					"pmtu":	1500,
					"omitted":	false,
					"sender":	true
				}],
			"sum":	{
				"start":	4.000786,
				"end":	5.001494,
				"seconds":	1.0007079839706421,
				"bytes":	56754176,
				"bits_per_second":	453712187.04428768,
				"retransmits":	0,
				"omitted":	false,
				"sender":	true
			}
		}],
	"end":	{
		"streams":	[{
				"sender":	{
					"socket":	5,
					"start":	0,
					"end":	5.001494,
					"seconds":	5.001494,
					"bytes":	204472320,
					"bits_per_second":	327057987.07346243,
					"retransmits":	102,
					"max_snd_cwnd":	2645496,
					"max_snd_wnd":	6225920,
					"max_rtt":	63651,
					"min_rtt":	42059,
					"mean_rtt":	53143,
					"sender":	true
				},
				"receiver":	{
					"socket":	5,
					"start":	0,
					"end":	5.04966,
					"seconds":	5.001494,
					"bytes":	204210176,
					"bits_per_second":	323523050.66083658,
					"sender":	true
				}
			}],
		"sum_sent":	{
			"start":	0,
			"end":	5.001494,
			"seconds":	5.001494,
			"bytes":	204472320,
			"bits_per_second":	327057987.07346243,
			"retransmits":	102,
			"sender":	true
		},
		"sum_received":	{
			"start":	0,
			"end":	5.04966,
			"seconds":	5.04966,
			"bytes":	204210176,
			"bits_per_second":	323523050.66083658,
			"sender":	true
		},
		"cpu_utilization_percent":	{
			"host_total":	1.39268421448378,
			"host_user":	0,
			"host_system":	1.3926443249220208,
			"remote_total":	3.0024393557312581,
			"remote_user":	0.37536927980190482,
			"remote_system":	2.6270502727492
		},
		"sender_tcp_congestion":	"cubic",
		"receiver_tcp_congestion":	"bbr"
	}
}
gilles@lenovo-bureau:~/Documents/vscode$ lscpu
Architecture :                              x86_64
  Mode(s) opératoire(s) des processeurs :   32-bit, 64-bit
  Tailles des adresses:                     36 bits physical, 48 bits virtual
  Boutisme :                                Little Endian
Processeur(s) :                             4
  Liste de processeur(s) en ligne :         0-3
Identifiant constructeur :                  GenuineIntel
  Nom de modèle :                           Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
    Famille de processeur :                 6
    Modèle :                                42
    Thread(s) par cœur :                    1
    Cœur(s) par socket :                    4
    Socket(s) :                             1
    Révision :                              7
    multiplication des MHz du/des CPU(s) :  96%
    Vitesse maximale du processeur en MHz : 3400,0000
    Vitesse minimale du processeur en MHz : 1600,0000
    BogoMIPS :                              6185,77
    Drapeaux :                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_ts
                                            c arch_perfmon pebs bts nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4
                                            _2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid xsaveopt dtherm ida arat pln 
                                            pts vnmi md_clear flush_l1d
Fonctionnalités de virtualisation :         
  Virtualisation :                          VT-x
Caches (somme de toutes) :                  
  L1d :                                     128 KiB (4 instances)
  L1i :                                     128 KiB (4 instances)
  L2 :                                      1 MiB (4 instances)
  L3 :                                      6 MiB (1 instance)
NUMA :                                      
  Nœud(s) NUMA :                            1
  Nœud NUMA 0 de processeur(s) :            0-3
Vulnérabilités :                            
  Gather data sampling :                    Not affected
  Indirect target selection :               Not affected
  Itlb multihit :                           KVM: Mitigation: Split huge pages
  L1tf :                                    Mitigation; PTE Inversion; VMX conditional cache flushes, SMT disabled
  Mds :                                     Mitigation; Clear CPU buffers; SMT disabled
  Meltdown :                                Mitigation; 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; Speculative Store Bypass disabled via prctl
  Spectre v1 :                              Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2 :                              Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
  Srbds :                                   Not affected
  Tsa :                                     Not affected
  Tsx async abort :                         Not affected
  Vmscape :                                 Mitigation; IBPB before exit to userspace
gilles@lenovo-bureau:~/Documents/vscode$ echo "Vendor: $(lscpu | grep 'Vendor ID' | awk '{print $3}')"
echo "Model: $(lscpu | grep 'Model name' | sed 's/Model name: *//')"
echo "Cores: $(lscpu | grep '^CPU(s):' | awk '{print $2}')"
echo "Threads: $(nproc)"
echo "Base Freq: $(lscpu | grep 'CPU MHz' | awk '{print $3}')"
echo "Max Freq: $(lscpu | grep 'CPU max MHz' | awk '{print $4}')"
Vendor: 
Model: 
Cores: 
Threads: 4
Base Freq: 
Max Freq: 
gilles@lenovo-bureau:~/Documents/vscode$ free -m
               total       utilisé      libre     partagé tamp/cache   disponible
Mem:            7771        5847        1479         678        1410        1923
Échange:        7627        4569        3058
gilles@lenovo-bureau:~/Documents/vscode$ free -m | grep '^Mem:' | awk '{print $2}'
7771
gilles@lenovo-bureau:~/Documents/vscode$ sudo dmidecode -t memory
[sudo] Mot de passe de gilles : 
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.

Handle 0x001B, DMI type 16, 15 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 32 GB
	Error Information Handle: No Error
	Number Of Devices: 4

Handle 0x001E, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x001B
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 2 GB
	Form Factor: DIMM
	Set: None
	Locator: A1_DIMM0
	Bank Locator: A1_BANK0
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MT/s
	Manufacturer: Samsung         
	Serial Number: 93771681  
	Asset Tag: A1_AssetTagNum0
	Part Number: M378B5773DH0-CH9  
	Rank: 1

Handle 0x0021, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x001B
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 2 GB
	Form Factor: DIMM
	Set: None
	Locator: A1_DIMM1
	Bank Locator: A1_BANK1
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MT/s
	Manufacturer: Samsung         
	Serial Number: 984CD5E6  
	Asset Tag: A1_AssetTagNum1
	Part Number: M378B5773DH0-CH9  
	Rank: 1

Handle 0x0024, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x001B
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 2 GB
	Form Factor: DIMM
	Set: None
	Locator: A1_DIMM2
	Bank Locator: A1_BANK2
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MT/s
	Manufacturer: Kingston        
	Serial Number: 0F0AF7F2  
	Asset Tag: A1_AssetTagNum2
	Part Number: ACR256X64D3U1333C9
	Rank: 2

Handle 0x0027, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x001B
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 2 GB
	Form Factor: DIMM
	Set: None
	Locator: A1_DIMM3
	Bank Locator: A1_BANK3
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MT/s
	Manufacturer: Kingston        
	Serial Number: 0B0A90F3  
	Asset Tag: A1_AssetTagNum3
	Part Number: ACR256X64D3U1333C9
	Rank: 2

gilles@lenovo-bureau:~/Documents/vscode$ sudo dmidecode -t memory | grep -E 'Size|Type:|Speed:|Manufacturer'
	Error Correction Type: None
	Size: 2 GB
	Type: DDR3
	Speed: 1333 MT/s
	Manufacturer: Samsung         
	Size: 2 GB
	Type: DDR3
	Speed: 1333 MT/s
	Manufacturer: Samsung         
	Size: 2 GB
	Type: DDR3
	Speed: 1333 MT/s
	Manufacturer: Kingston        
	Size: 2 GB
	Type: DDR3
	Speed: 1333 MT/s
	Manufacturer: Kingston        
gilles@lenovo-bureau:~/Documents/vscode$ lspci | grep -i vga
lspci | grep -i 3d
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
gilles@lenovo-bureau:~/Documents/vscode$ sudo dmidecode -t baseboard | grep -E 'Manufacturer|Product Name'
	Manufacturer: LENOVO
	Product Name:                       
gilles@lenovo-bureau:~/Documents/vscode$ sudo dmidecode -t baseboard 
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: LENOVO
	Product Name:                       
	Version:                       
	Serial Number: INVALID             
	Asset Tag:                       
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: To be filled by O.E.M.
	Chassis Handle: 0x0003
	Type: Motherboard
	Contained Object Handles: 0

Handle 0x0014, DMI type 10, 6 bytes
On Board Device Information
	Type: Video
	Status: Enabled
	Description:    Onboard Video

Handle 0x0015, DMI type 10, 6 bytes
On Board Device Information
	Type: Ethernet
	Status: Enabled
	Description: Onboard LAN

Handle 0x0016, DMI type 10, 6 bytes
On Board Device Information
	Type: Sound
	Status: Enabled
	Description:   Onboard Audio

Handle 0x0017, DMI type 10, 6 bytes
On Board Device Information
	Type: SATA Controller
	Status: Enabled
	Description:   Sata Controller

Handle 0x0057, DMI type 41, 11 bytes
Onboard Device
	Reference Designation:  Onboard IGD
	Type: Video
	Status: Enabled
	Type Instance: 1
	Bus Address: 0000:00:02.0

Handle 0x0058, DMI type 41, 11 bytes
Onboard Device
	Reference Designation:  Onboard LAN
	Type: Ethernet
	Status: Enabled
	Type Instance: 1
	Bus Address: 0000:00:19.0

Handle 0x0059, DMI type 41, 11 bytes
Onboard Device
	Reference Designation:  Onboard 1394
	Type: Other
	Status: Enabled
	Type Instance: 1
	Bus Address: 0000:03:1c.2

Handle 0x0062, DMI type 10, 6 bytes
On Board Device Information
	Type: Other
	Status: Disabled
	Description: IBM Embedded Security Hardware Type 3

gilles@lenovo-bureau:~/Documents/vscode$ cat /etc/os-release
uname -r  # kernel version
uname -m  # architecture
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.2
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
6.12.57+deb13-amd64
x86_64
gilles@lenovo-bureau:~/Documents/vscode$ lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
NAME     SIZE TYPE MOUNTPOINT
loop1   55,5M loop /snap/core18/2976
loop2   55,5M loop /snap/core18/2952
loop3   63,8M loop /snap/core20/2669
loop4  164,8M loop /snap/gnome-3-28-1804/198
loop5      4K loop /snap/bare/5
loop6   50,8M loop /snap/snapd/25202
loop7   91,7M loop /snap/gtk-common-themes/1535
loop8   56,5M loop /snap/mqtt-explorer/29
loop9   92,5M loop /snap/mqtt-explorer/31
loop10  50,9M loop /snap/snapd/25577
loop11  63,8M loop /snap/core20/2682
sda    447,1G disk 
├─sda1   7,4G part [SWAP]
├─sda2     1K part 
└─sda5 439,7G part /
sdb        0B disk 
gilles@lenovo-bureau:~/Documents/vscode$ sudo smartctl -i /dev/sda
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.12.57+deb13-amd64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Phison Driven SSDs
Device Model:     KINGSTON SA400S37480G
Serial Number:    50026B77833E25E3
LU WWN Device Id: 5 0026b7 7833e25e3
Firmware Version: SBFKK1B3
User Capacity:    480 103 981 056 bytes [480 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
TRIM Command:     Available
Device is:        In smartctl database 7.3/5528
ATA Version is:   ACS-3 T13/2161-D revision 4
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sun Dec  7 19:07:51 2025 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

gilles@lenovo-bureau:~/Documents/vscode$ sudo dmesg | grep -i sdb
[    3.311044] sd 6:0:0:0: [sdb] Media removed, stopped polling
[    3.311324] sd 6:0:0:0: [sdb] Attached SCSI removable disk
gilles@lenovo-bureau:~/Documents/vscode$ sudo smartctl -i /dev/sdb
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.12.57+deb13-amd64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

/dev/sdb: Unknown USB bridge [0x05e3:0x0745 (0x904)]
Please specify device type with the -d option.

Use smartctl -h to get a usage summary

gilles@lenovo-bureau:~/Documents/vscode$ sudo fdisk -l /dev/sdb
fdisk: impossible d'ouvrir /dev/sdb: Aucun médium trouvé
gilles@lenovo-bureau:~/Documents/vscode$ lsblk -J  # JSON format
{
   "blockdevices": [
      {
         "name": "loop1",
         "maj:min": "7:1",
         "rm": false,
         "size": "55,5M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/core18/2976"
         ]
      },{
         "name": "loop2",
         "maj:min": "7:2",
         "rm": false,
         "size": "55,5M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/core18/2952"
         ]
      },{
         "name": "loop3",
         "maj:min": "7:3",
         "rm": false,
         "size": "63,8M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/core20/2669"
         ]
      },{
         "name": "loop4",
         "maj:min": "7:4",
         "rm": false,
         "size": "164,8M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/gnome-3-28-1804/198"
         ]
      },{
         "name": "loop5",
         "maj:min": "7:5",
         "rm": false,
         "size": "4K",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/bare/5"
         ]
      },{
         "name": "loop6",
         "maj:min": "7:6",
         "rm": false,
         "size": "50,8M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/snapd/25202"
         ]
      },{
         "name": "loop7",
         "maj:min": "7:7",
         "rm": false,
         "size": "91,7M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/gtk-common-themes/1535"
         ]
      },{
         "name": "loop8",
         "maj:min": "7:8",
         "rm": false,
         "size": "56,5M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/mqtt-explorer/29"
         ]
      },{
         "name": "loop9",
         "maj:min": "7:9",
         "rm": false,
         "size": "92,5M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/mqtt-explorer/31"
         ]
      },{
         "name": "loop10",
         "maj:min": "7:10",
         "rm": false,
         "size": "50,9M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/snapd/25577"
         ]
      },{
         "name": "loop11",
         "maj:min": "7:11",
         "rm": false,
         "size": "63,8M",
         "ro": true,
         "type": "loop",
         "mountpoints": [
             "/snap/core20/2682"
         ]
      },{
         "name": "sda",
         "maj:min": "8:0",
         "rm": false,
         "size": "447,1G",
         "ro": false,
         "type": "disk",
         "mountpoints": [],
         "children": [
            {
               "name": "sda1",
               "maj:min": "8:1",
               "rm": false,
               "size": "7,4G",
               "ro": false,
               "type": "part",
               "mountpoints": [
                   "[SWAP]"
               ]
            },{
               "name": "sda2",
               "maj:min": "8:2",
               "rm": false,
               "size": "1K",
               "ro": false,
               "type": "part",
               "mountpoints": []
            },{
               "name": "sda5",
               "maj:min": "8:5",
               "rm": false,
               "size": "439,7G",
               "ro": false,
               "type": "part",
               "mountpoints": [
                   "/"
               ]
            }
         ]
      },{
         "name": "sdb",
         "maj:min": "8:16",
         "rm": true,
         "size": "0B",
         "ro": false,
         "type": "disk",
         "mountpoints": []
      }
   ]
}
gilles@lenovo-bureau:~/Documents/vscode$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 44:37:e6:6b:53:86 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    altname enx4437e66b5386
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 62:a5:f7:52:3e:06 brd ff:ff:ff:ff:ff:ff permaddr 14:f6:d8:67:27:b7
    altname wlx14f6d86727b7
4: br-7dbed573109c: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 96:dd:6f:58:69:7a brd ff:ff:ff:ff:ff:ff
5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    link/ether fa:4b:12:7b:47:24 brd ff:ff:ff:ff:ff:ff
6: veth146accf@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default 
    link/ether e2:6e:84:f2:1f:f9 brd ff:ff:ff:ff:ff:ff link-netnsid 0
gilles@lenovo-bureau:~/Documents/vscode$ ip -br link show | grep UP
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
eno1             UP             44:37:e6:6b:53:86 <BROADCAST,MULTICAST,UP,LOWER_UP> 
br-7dbed573109c  DOWN           96:dd:6f:58:69:7a <NO-CARRIER,BROADCAST,MULTICAST,UP> 
docker0          UP             fa:4b:12:7b:47:24 <BROADCAST,MULTICAST,UP,LOWER_UP> 
veth146accf@if2  UP             e2:6e:84:f2:1f:f9 <BROADCAST,MULTICAST,UP,LOWER_UP> 
gilles@lenovo-bureau:~/Documents/vscode$ 
ChatGPT a dit :

Je vais te faire une lecture “profil complet” de cette machine + les chiffres importants à retenir, puis corriger tes commandes de collecte (lscpu, etc.).
1. Profil matériel détecté

CPU

    Modèle : Intel Core i5-2400

    Architecture : Sandy Bridge, 4 cœurs / 4 threads, pas d’Hyper-Threading.

    Fréquences :

        Min : 1,6 GHz

        Max/Turbo : 3,4 GHz

    VT-x présent, AVX présent, CPU assez ancien mais correct pour serveur light / petites VM / Docker.

RAM

    Total : ~8 Go (free -m → 7771 Mo utilisables).

    Slots : 4 × 2 Go DDR3-1333.

    DMI :

        2 × Samsung 2 Go DDR3-1333

        2 × Kingston 2 Go DDR3-1333

    Capacité max carte mère : 32 Go.

Stockage

    SSD : KINGSTON SA400S37480G 480 Go, SATA 6 Gb/s.

    Partitions :

        sda1 : 7,4 Go swap

        sda5 : 439,7 Go /

    sdb :

        périphérique USB / lecteur de carte :
        sd 6:0:0:0: [sdb] Media removed, stopped polling
        fdisk: Aucun médium trouvé
        → c’est un lecteur sans support inséré, à ignorer comme “disque” réel.

OS / Réseau

    OS : Debian 13 (trixie), kernel 6.12.57+deb13-amd64.

    Réseau :

        eno1 : Ethernet 1 Gbit/s (Onboard Intel), UP.

        Wi-Fi présent mais DOWN.

        Interfaces Docker (docker0, bridge br-…).

2. Bench CPU (sysbench)
Multithread (4 threads)

    cpu-max-prime=10000 → ~3300–3400 events/s

    cpu-max-prime=20000 → ~1200–1275 events/s

Donc :

    Quand tu doubles la charge (10000 → 20000), tu divises grosso modo les events/s par ~2,7 – ce qui est cohérent vu la complexité des tests de primalité.

    Latence moyenne à 20000 : ~3,1–3,3 ms par event, 95ᵉ percentile 4–7 ms → CPU stable, peu de “spikes”.

Monothread (1 thread, 20000)

    events per second: 357 events/s

    Latence : ~2,8 ms, 95ᵉ percentile ~2,9 ms → encore plus stable que le multi-thread.

Ce que ça donne comme image

    Perf monothread : ~357 events/s → correct pour un i5 Sandy Bridge.

    Scaling 1 → 4 threads : 357 → ~1200 events/s → ≈ 3,3× au lieu de 4× parfait.

        Normal : contention caches, scheduler, fréquence qui baisse un peu à pleine charge.

👉 Pour ton futur outil, les valeurs à garder :

    cpu_max_prime

    threads

    events_per_second

    latency_avg_ms

    latency_95th_ms

    éventuellement events_per_second_1thread pour comparer mono vs multi.

3. Bench mémoire (sysbench memory)

    512 MiB : 13 806 MiB/s

    1 GiB : 15 213 MiB/s

    Autre run : 13 200 MiB/s

Donc on tourne autour de 13–15 GiB/s en écriture.

Pour de la DDR3-1333 dual-channel (théorique ≈ 21,3 Go/s), c’est normal :
on est à ~60–70 % du théorique, ce qui est typique.

👉 À retenir : “RAM write ~14 GiB/s”.
4. Bench disque (fio)

Attention : tu utilises /tmp/fio-test-file. Sur Debian 13, /tmp est généralement un tmpfs en RAM → tu benches la RAM, pas le SSD, même avec --direct=1 tu restes sur un FS spécial.

Résultats :

    Seq read 1 MiB, 1 GiB :

        ~2590 MiB/s (~2,6 Go/s).

    Seq write 1 MiB, 1 GiB :

        ~1430 MiB/s (~1,5 Go/s).

    RandRW 4k, 100 MiB :

        ~685 MiB/s lecture + écriture, ~175k IOPS.

Ces chiffres sont impossibles pour un SATA A400 (limite physique ~500–550 Mo/s, 60–80k IOPS max).
Donc c’est bien le tmpfs RAM qui est benché.

👉 Pour tester le SSD réel, il faudra utiliser un fichier sur / (ext4 sur sda5), par ex :

mkdir -p ~/fio-ssd-test
fio --name=seqread \
    --ioengine=libaio \
    --rw=read \
    --bs=1M \
    --size=4G \
    --numjobs=1 \
    --direct=1 \
    --filename=~/fio-ssd-test/fio-test-file

Même chose pour write / randrw.
5. Bench réseau (iperf3)

    Normal (client→serveur) :
    ~0,5 Gbit/s (496 Mbit/s, retrans très faibles).

    Reverse (serveur→client) :
    ~0,4 Gbit/s (413–417 Mbit/s).

    Run JSON : ~0,32 Gbit/s avec un peu de retrans (102 sur un intervalle).

Donc :

    Tu es entre 0,3 et 0,5 Gbit/s sur un lien Gigabit.

    Ce n’est pas saturé (1 Gbit/s), mais correct :

        peut être limité par l’autre machine (10.0.0.50),

        câble, switch, réglage TCP (Cubic vs BBR), charge CPU côté serveur.

👉 Pour ton app, les champs utiles :

    bandwidth_tx_mbps

    bandwidth_rx_mbps

    retransmits

    tcp_congestion_algo (ici cubic/bbr).

6. Pourquoi tes echo "Vendor: $(lscpu | grep 'Vendor ID' ...) sont vides

Ton lscpu est localisé en français :

    Pas de "Vendor ID" mais "Identifiant constructeur".

    Pas de "Model name" mais "Nom de modèle".

    Pas de "CPU(s):" mais "Processeur(s)".

    Pas de "CPU max MHz" mais "Vitesse maximale du processeur en MHz".

Donc tes grep 'Vendor ID' et autres ne trouvent rien → champs vides.
Solution 1 : forcer l’anglais pour parser proprement

LC_ALL=C lscpu | grep '^Vendor ID:' | awk -F: '{gsub(/^ +/,"",$2); print $2}'
LC_ALL=C lscpu | grep '^Model name:' | sed 's/^Model name:[ \t]*//'
LC_ALL=C lscpu | grep '^CPU(s):' | awk -F: '{gsub(/^ +/,"",$2); print $2}'
LC_ALL=C lscpu | grep '^CPU max MHz:' | awk -F: '{gsub(/^ +/,"",$2); print $2}'
LC_ALL=C lscpu | grep '^CPU min MHz:' | awk -F: '{gsub(/^ +/,"",$2); print $2}'

Exemple compact :

echo "Vendor: $(LC_ALL=C lscpu | awk -F: '/^Vendor ID:/ {gsub(/^ +/,"",$2); print $2}')"
echo "Model:  $(LC_ALL=C lscpu | sed -n 's/^Model name:[ \t]*//p')"
echo "Cores:  $(LC_ALL=C lscpu | awk -F: '/^CPU(s):/ {gsub(/^ +/,"",$2); print $2}')"

Solution 2 (si tu veux du JSON) : lscpu -J + jq

Comme tu as jq :

LC_ALL=C lscpu -J | jq -r '.lscpu[] | select(.field=="Model name:") | .data'
LC_ALL=C lscpu -J | jq -r '.lscpu[] | select(.field=="Vendor ID:") | .data'

Parfait pour ton futur collecteur hardware.
7. Résumé “fiche machine” exploitable

Si je condense tout ce que tu viens de mesurer :

    CPU : Intel i5-2400 (4C/4T, 3,1/3,4 GHz)

        sysbench 1T (prime 20000) : ~357 events/s

        sysbench 4T (prime 20000) : ~1200–1270 events/s

        sysbench 4T (prime 10000) : ~3300–3400 events/s

    RAM : 8 Go DDR3-1333 (4×2 Go), bande passante écriture ~14 GiB/s.

    Disque : Kingston A400 480 Go SATA (à bench à nouveau hors /tmp).

    Réseau : 0,3–0,5 Gbit/s iperf3 sur lien 1 Gbit/s.

    Divers : lecteur USB/SD vide exposé comme /dev/sdb (removable, 0B).

Si tu veux, je peux te proposer un petit JSON “standardisé” qui regroupe tous ces champs comme gabarit pour ton futur script de collecte.
Vous avez dit :
mkdir -p ~/fio-ssd-test
fio --name=seqread \
    --ioengine=libaio \
    --rw=read \
    --bs=1M \
    --size=4G \
    --numjobs=1 \
    --direct=1 \
    --filename=~/fio-ssd-test/fio-test-file
seqread: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=1
fio-3.39
Starting 1 process
seqread: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [R(1)][100.0%][r=339MiB/s][r=339 IOPS][eta 00m:00s]
seqread: (groupid=0, jobs=1): err= 0: pid=200179: Sun Dec  7 19:14:47 2025
  read: IOPS=340, BW=341MiB/s (357MB/s)(4096MiB/12014msec)
    slat (usec): min=43, max=556, avg=158.69, stdev=37.00
    clat (msec): min=2, max=115, avg= 2.77, stdev= 2.88
     lat (msec): min=2, max=115, avg= 2.93, stdev= 2.89
    clat percentiles (msec):
     |  1.00th=[    3],  5.00th=[    3], 10.00th=[    3], 20.00th=[    3],
     | 30.00th=[    3], 40.00th=[    3], 50.00th=[    3], 60.00th=[    3],
     | 70.00th=[    3], 80.00th=[    3], 90.00th=[    3], 95.00th=[    3],
     | 99.00th=[    4], 99.50th=[    5], 99.90th=[   53], 99.95th=[   54],
     | 99.99th=[  116]
   bw (  KiB/s): min=260096, max=403456, per=100.00%, avg=349354.67, stdev=31978.90, samples=24
   iops        : min=  254, max=  394, avg=341.17, stdev=31.23, samples=24
  lat (msec)   : 4=99.29%, 10=0.42%, 20=0.07%, 50=0.10%, 100=0.07%
  lat (msec)   : 250=0.05%
  cpu          : usr=0.56%, sys=5.98%, ctx=4103, majf=0, minf=265
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=4096,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: bw=341MiB/s (357MB/s), 341MiB/s-341MiB/s (357MB/s-357MB/s), io=4096MiB (4295MB), run=12014-12014msec

Disk stats (read/write):
  sda: ios=8129/107, sectors=8276848/2272, merge=31/128, ticks=20107/1243, in_queue=21716, util=96.46%
gilles@lenovo-bureau:~/Documents/vscode$ echo "Vendor: $(LC_ALL=C lscpu | awk -F: '/^Vendor ID:/ {gsub(/^ +/,"",$2); print $2}')"
echo "Model:  $(LC_ALL=C lscpu | sed -n 's/^Model name:[ \t]*//p')"
echo "Cores:  $(LC_ALL=C lscpu | awk -F: '/^CPU(s):/ {gsub(/^ +/,"",$2); print $2}')"
Vendor: GenuineIntel
Model:  Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
Cores:  
gilles@lenovo-bureau:~/Documents/vscode$ 
ChatGPT a dit :

    Lecture du test FIO sur le SSD

Là tu testes enfin bien le SSD réel (fichier sur ~/fio-ssd-test → donc sur /dev/sda).

Résultat important :

READ: bw=341MiB/s (357MB/s), io=4096MiB, run=12014msec
...
Disk stats:
  sda: ... util=96.46%

À retenir :

    Débit séquentiel lecture ≈ 340 MiB/s (~357 Mo/s).

    Disque utilisé à ~96 % pendant le test → tu es limité par le SSD, pas par le CPU.

    Pour un Kingston A400 SATA, c’est cohérent si :

        le disque est un peu usé,

        il y a de la fragmentation,

        tu passes par ext4 + overhead du FS,

        tu lis 4 Gio d’un coup avec iodepth=1 (peu de requêtes en vol).

En pratique, on voit souvent :

    350–450 Mo/s en réel sur ce genre de SSD SATA,

    500–550 Mo/s au mieux dans des conditions idéales.

Donc ton 341 MiB/s est tout à fait crédible pour cette machine.

    Pourquoi Cores: est vide dans ton echo

Commande :

echo "Vendor: $(LC_ALL=C lscpu | awk -F: '/^Vendor ID:/ {gsub(/^ +/,"",$2); print $2}')"
echo "Model:  $(LC_ALL=C lscpu | sed -n 's/^Model name:[ \t]*//p')"
echo "Cores:  $(LC_ALL=C lscpu | awk -F: '/^CPU(s):/ {gsub(/^ +/,"",$2); print $2}')"

Résultat :

Vendor: GenuineIntel
Model:  Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
Cores:  

Donc :

    Vendor OK → Vendor ID: est bien trouvé.

    Model OK → Model name: aussi.

    CPU(s): n’est pas trouvé par awk → résultat vide.

Les causes possibles :

    Sous LC_ALL=C, il est possible que le champ s’appelle autrement (ex. CPU(s): vs CPU(s) avec espace ou autre).

    Il peut y avoir des caractères bizarres (tabulation, non-breaking space) qui font que le ^CPU(s): ne matche pas exactement.

Tu peux le vérifier en faisant :

LC_ALL=C lscpu | grep 'CPU'

Tu verras exactement la forme du champ.

    Méthode plus robuste avec lscpu -J + jq

Comme tu as déjà jq, le plus propre pour ton futur script de collecte, c’est d’utiliser le JSON de lscpu :

LC_ALL=C lscpu -J | jq -r '.lscpu[] | select(.field=="CPU(s):") | .data'

Tu peux donc écrire :

echo "Vendor: $(LC_ALL=C lscpu -J | jq -r '.lscpu[] | select(.field=="Vendor ID:") | .data')"
echo "Model:  $(LC_ALL=C lscpu -J | jq -r '.lscpu[] | select(.field=="Model name:") | .data')"
echo "Cores:  $(LC_ALL=C lscpu -J | jq -r '.lscpu[] | select(.field=="CPU(s):")    | .data')"

Là :

    tu ne dépends plus des espaces,

    tu ne dépends plus du nombre de colonnes,

    tu gardes juste le champ .field tel que lscpu le donne en anglais.

Si tu veux, je peux te proposer un petit script bash qui sort directement un JSON complet du type :

{
  "cpu": { ... },
  "memory": { ... },
  "disk": { ... },
  "network": { ... },
  "benchmarks": { ... }
}

en réutilisant tous les tests que tu viens de lancer.


ChatGPT peut commettre des erreurs. Il est recommandé de vérifier les informations importantes. Voir les préférences en matière de cookies.
