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=150G4 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-threadAucun 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=yourrootsqlpassword5 liens
- sysbench :http://sysbench.sourceforge.net/