web-dev-qa-db-fra.com

Impossible de trouver le test oltp sur sysbench

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.

4

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

8
Pintu Kumar

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
...
0
Hman