Files
serv_benchmark/analyse_chatgpt.md
Gilles Soulier c67befc549 addon
2026-01-05 16:08:01 +01:00

2458 lines
74 KiB
Markdown
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 linterpré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 lalgorithme qui teste tous les nombres jusquà 20000 pour trouver les nombres premiers”.
events per second: 1274.88 signifie :
Au total, lensemble 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 nest 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 : cest le nombre total dité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 à sexé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 34 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 : cest 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, dautres 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 dexé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 dautres valeurs de --cpu-max-prime (par ex. 10000 / 50000) pour voir limpact.
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, cest-à-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
Cest la métrique la plus importante.
Cest le débit de calcul : combien ditérations complètes (prime jusquà 20000) la machine exécute par seconde.
Plus la valeur est haute, plus le CPU est rapide.
Cest celle quon 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 na 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 lavg → 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,
quun 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 cest 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 dautres 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,
limpact de la fréquence CPU,
la latence liée au scheduler,
lefficacité IPC (instructions par cycle).
Cest 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 sexplique 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. Lutilisation de grep change parfois la sortie, mais pas le calcul
Important :
grep ne modifie pas le benchmark, il lit seulement le stdout après lexécution du test.
Donc laugmentation nest 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 dautres tâches,
car le Turbo Boost sactive/désactive,
car létat énergétique change (C-states),
car lalimentation 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 dune 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 linverse.
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 34 % 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 danalyse.
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 lexplication claire.
1. events per second = débit global de la machine
events per second: 1247.67
Cest 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
→ Cest 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 lanalyse 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 lignorer.
sda5 = 439,7 Go → partition racine /
Toute ton installation Linux est dessus.
Cest 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 cest normal dans deux cas :
Cas 1 : Cest 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 nas quun 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 ny a rien dessus → 0B.
Si tu veux lidentifier, 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”, cest bien un port vide.
4. Résumé simple et utile pour toi
Périphérique Rôle Commentaire
loop1loop11 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 :
lanalyse SMART complète du disque sda,
un diagnostic filesystem,
létat dusure 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: 480103981056 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 dHyper-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é
→ cest 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 → ~33003400 events/s
cpu-max-prime=20000 → ~12001275 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,13,3 ms par event, 95ᵉ percentile 47 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 1315 GiB/s en écriture.
Pour de la DDR3-1333 dual-channel (théorique ≈ 21,3 Go/s), cest normal :
on est à ~6070 % 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 ~500550 Mo/s, 6080k IOPS max).
Donc cest 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 (413417 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 nest pas saturé (1 Gbit/s), mais correct :
peut être limité par lautre 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 langlais 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) : ~12001270 events/s
sysbench 4T (prime 10000) : ~33003400 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,30,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, cest 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 dun coup avec iodepth=1 (peu de requêtes en vol).
En pratique, on voit souvent :
350450 Mo/s en réel sur ce genre de SSD SATA,
500550 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): nest pas trouvé par awk → résultat vide.
Les causes possibles :
Sous LC_ALL=C, il est possible que le champ sappelle 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, cest dutiliser 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.