GNU/Linux >> Tutoriels Linux >  >> Linux

Comment évaluer votre système (CPU, File IO, MySQL) avec Sysbench

sysbench est une suite de benchmark qui vous permet d'avoir rapidement une impression des performances du système, ce qui est important si vous envisagez d'exécuter une base de données sous une charge intensive. Cet article explique comment évaluer les performances de votre processeur, de vos E/S de fichiers et de MySQL avec sysbench.

1 Installation de sysbench

Sur Debian/Ubuntu, sysbench peut être installé comme suit :

sudo apt-get install sysbench

Sur CentOS et Fedora, il peut être installé à partir du référentiel EPEL.

Ajouter un référentiel EPEL :

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
yum -y update

Installez ensuite sysbench avec yum :

yum installer sysbench

Obtenir un aperçu des options de sysbench

Jetez un oeil à

man sysbench

pour en savoir plus sur ses paramètres.

Je vais maintenant effectuer trois tests de base simples qui vous en diront plus sur les performances de votre processeur, les performances des E/S de fichiers et les performances de MySQL.

2 processeurs de référence

Vous pouvez évaluer les performances de votre processeur comme suit :

sysbench --test=cpu --cpu-max-prime=20000 exécuté
[email protected] :~# sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12 :  test d'évaluation de système multithread 

En cours d'exécution le test avec les options suivantes :
Nombre de threads  : 1

Évaluation des performances du CPU 

Threads commencé !
Terminé.

/> Nombre premier maximal vérifié dans le test CPU : 20000


Résumé de l'exécution du test :
    durée totale  :                          23,8724 s
    nombre total d'événements :           0 Temps total pris par l'exécution des événements:23.8716
Statistiques par réflexion:
min:2,31 ms
avg:2,39 ms
max:6,39 ms
approx. 95 centile :               2,44 ms

Équité des threads :
    événements (avg/stddev) :           10000,0000/0,00
    temps d'exécution (avg/stddev) :   23,8716/stddev) :   23,8716/stddev) :   23,8716/stddev) :   23,8716/stddev) :br />[email protected] :~#

Vous voyez beaucoup de chiffres, le plus important étant le temps total :

durée total :                         23.8724s

Bien sûr, vous devez comparer les points de repère sur plusieurs systèmes pour savoir ce que valent ces chiffres.

3 Benchmark E/S de fichiers

Pour mesurer les performances d'E/S des fichiers, nous devons d'abord créer un fichier de test beaucoup plus volumineux que votre RAM (car sinon, le système utilisera la RAM pour la mise en cache, ce qui altérera les résultats de référence) - 150 Go est une bonne valeur :

sysbench --test=fileio --file-total-size=150G préparer

Ensuite, nous pouvons exécuter le benchmark :

sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run 
[email protected] :~# sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 -- max-requests=0 run
sysbench : /usr/lib/libmysqlclient.so.18 : aucune information de version disponible (requis par sysbench)
sysbench 0.4.12 :  évaluation de système multithread 

Exécution du test avec les options suivantes :
Nombre de threads  : 1
Initialisation du générateur de nombres aléatoires à partir du minuteur.


Drapeaux d'ouverture de fichier supplémentaire : 0
128 fichiers, 1,1719 Go chacun
Taille totale de 150 Go de fichier 
Taille de bloc 16 Ko
Nombre de demandes aléatoires pour  l'IO aléatoire : 0
Rapport lecture/écriture pour l'IO aléatoire combiné test : 1.50
FSYNC périodique activé, appelant fsync() chaque 100 requêtes.
Appel fsync() à la fin du test, Activé.
Utilisation du mode E/S synchrone
Faire test r/w aléatoire
Threads démarrés !
Limite de temps dépassée, sortie...
Terminé.

Opérations effectuées :  600 Lecture, 400 Écriture, 1186 Autre =2 186 Total
Lu 9,375 Mb  Écrit 6,25 Mb  Total transféré 15,625 Mb  (53,316 Ko/sec)
    3,33 Requêtes/sec exécutées

Résumé de l'exécution du test :
    durée totale :                                              Nombre total d'événements:1000
Temps total pris par l'exécution des événements:158,7611
Statistiques par réflexion:
Min:0,01 ms
AVG:158,76 ms
Max:2596,96 ms
         env. 95 percentile :            482,29 ms

Équité des threads :
    événements (avg/stddev) :           1 000,0000/0,00
    temps d'exécution (avg/stddev) :   158,7611/stddev) :   158,7611/stddev) :   158,7611/stddev) :   158,7611/stddev) :   158,7611/stddev) :br />[email protected] :~#

Le nombre important est la valeur Kb/sec :

Lu 9,375 Mo  Écrit 6,25 Mo  Total transféré 15,625 Mo  (53,316 Ko/sec)

Après le benchmark, vous pouvez supprimer le fichier de test de 150 Go du système :

nettoyage de sysbench --test=fileio --file-total-size=150G

4 Indice de référence MySQL

Pour mesurer les performances de MySQL, nous créons d'abord une table de test dans le test de la base de données avec 1 000 000 lignes de données :

sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
[email protected] :~# sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql- password=yourrootsqlpassword prepare
sysbench 0.4.12 :benchmark d'évaluation de système multi-thread
Aucun pilote DB spécifié, en utilisant mysql
Création de la table 'sbtest'...
Création de 1000000 enregistrements dans la table 'sbtest'...
[email protected] :~#

Remplacez le mot votremotdepasseqlracine avec votre mot de passe root MySQL dans la commande ci-dessus. Faites de même dans les commandes suivantes.

Ensuite, vous pouvez exécuter le benchmark MySQL comme suit :

sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max- time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
[email protected] :~# sysbench --test=oltp --oltp-table-size=1000000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql- password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
sysbench 0.4.12 :  évaluation de système multithread 

Aucun pilote DB spécifié, à l'aide de mysql
Exécution du test avec les options suivantes :
Nombre de threads : 8

En cours de test OLTP.
Exécution d'un test OLTP mixte
Réalisation d'un test en lecture seule
Utilisation d'une distribution spéciale (12 itérations,  1 pct des valeurs sont renvoyées dans 75 cas pct)
Utilisation de "BEGIN" pour démarrer des transactions
Utilisation de auto_inc sur la colonne id 
Les discussions ont démarré !
Limite de temps dépassée, sortie...
(dernier message répété 7 fois)
Terminé.

Statistiques de test OLTP:
Requêtes effectuées:
Lire:2253860
Écrire:0
Autre:32 1980
Total:2575840
Transactions:160990 (2683.06 par sec.)
Les impasses:0 (0,00 par sec.)
Read / Write Demandes:2253860 (37562.81 par sec.)
Autres opérations:321980 (5366.12 par sec.)

Résumé de l'exécution des tests:
Temps total:60,0024S
Nombre total d'événements:160990
Temps pris par l'exécution de l'événement:479.3419
Statistiques par réflexion:
min:0,81 ms
avg:2,98 ms
max:3283,40 ms
Env. 95 centile :               4,62 ms

Équité des threads :
    événements (avg/stddev) :           20123.7500/63.52
    temps d'exécution (avg/stddev) :   59.9177/0.0 br />[email protected] :~#

Le nombre important est la valeur des transactions par seconde :

transactions :                        160 990 (2 683,06 par s)

Pour nettoyer le système par la suite (c'est-à-dire supprimer la table de test), exécutez :

nettoyage de sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword
  • sysbench :http://sysbench.sourceforge.net/

Linux
  1. Surveillez votre système Linux dans votre terminal avec procps-ng

  2. Comment créer une base de données dans MySQL avec MySQL Workbench

  3. Comment modifier votre fichier Hosts dans Windows 10

  4. Comment configurer plusieurs serveurs MySQL sur un seul système à l'aide de mysqld_multi

  5. Comment obtenir des statistiques système avec node.js

Améliorez les performances du système Linux avec noatime

Comment défragmenter votre système Linux

Comment sauver votre système Windows ou Linux avec Rescatux

Comment obtenir le pourcentage d'utilisation du processeur avec bash ?

Comment remplir un fichier avec FF en utilisant dd ?

Comment puis-je utiliser rsync avec un système de fichiers FAT ?