J'essaie d'exécuter des tests sur la base de données MySQL à l'aide de sysbench. Cependant, il indique qu'il ne trouve pas le test intégré oltp
.
Détail: J'ai installé MySQL et sysbench sur ma machine locale. De plus, j'ai créé la base de données dbtest
dans mySQL. Et puis j'ai exécuté l'instruction suivante.
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=dbtest --mysql-user=root --mysql-password=<password> prepare
Mais alors ce message d'erreur s'est produit.
WARNING: the --test option is deprecated. You can pass a script
name or path on the command line without any options.
sysbench 1.0.8 (using bundled LuaJIT 2.1.0-beta2)
FATAL: Cannot find benchmark 'oltp': no such built-in test, file or module
sysbench a bien fonctionné avec d'autres tests tels que
sysbench --test=cpu --cpu-max-prime=20000 run
Je pense que le problème est que sysbench ne trouve pas de test prédéfini appelé oltp
mais je ne sais pas comment le comprendre.
Merci pour la lecture.
La sortie semble indiquer que vous avez installé la dernière version de sysbench 1.0. Donc, vous pouvez essayer de préparer la commande comme ci-dessous -
sysbench --db-driver=mysql --mysql-user=root --mysql-password=<pwd> \
--mysql-socket=<mysql.sock path> --mysql-db=foo --range_size=100 \
--table_size=10000 --tables=2 --threads=1 --events=0 --time=60 \
--Rand-type=uniform /usr/share/sysbench/oltp_read_only.lua prepare
Avant d'exécuter la commande prepare, ouvrez la console mysql et créez une base de données foo - create database foo. Si vous avez l'installation de mysql à l'emplacement standard, le chemin de mysql.sock n'est pas requis.
8 tables sont créées dans database foo en utilisant la commande ci-dessus, vous pouvez les vérifier sur la console mysql en utilisant la commande suivante - utilisez database foo, show tables etc.
Ensuite, vous pouvez exécuter la référence comme suit -
sysbench --db-driver=mysql --mysql-user=root --mysql-password=<pwd> \
--mysql-socket=<mysql.sock path> --mysql-db=foo --range_size=100 \
--table_size=10000 --tables=2 --threads=1 --events=0 --time=60 \
--Rand-type=uniform /usr/share/sysbench/oltp_read_only.lua run
Remarque: il existe de nombreuses charges de travail dans le dossier de partage de sysbench. En dehors de oltp_read_only, vous pouvez les utiliser. Il y a suffisamment de documentation fournie sur le lien github - https://github.com/akopytov/sysbench
L'outil dpkg
est pratique pour indiquer où les fichiers d'un package installé sont stockés sur le système. Je l'ai utilisé lors de la localisation des scripts de test pour sysbench 1.0.14. Voir la page de manuel pour plus d'options
# dpkg --listfiles sysbench
...
/usr/share/sysbench/bulk_insert.lua
/usr/share/sysbench/select_random_ranges.lua
/usr/share/sysbench/oltp_update_non_index.lua
/usr/share/sysbench/oltp_delete.lua
/usr/share/sysbench/oltp_update_index.lua
/usr/share/sysbench/oltp_read_write.lua
/usr/share/sysbench/oltp_point_select.lua
...