我正在尝试使用sysbench在mySQL数据库上运行基准测试。然而,它说它找不到内置的测试oltp。
详细信息:我已经在本地机器上安装了mySQL和sysbench。此外,我还在mySQL中创建了数据库dbtest。然后我执行了下面的指令。
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=dbtest --mysql-user=root --mysql-password=<password> prepare但是随后出现了这个错误消息。
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 modulesysbench可以很好地与其他测试配合使用,例如
sysbench --test=cpu --cpu-max-prime=20000 run
我认为问题在于sysbench无法找到预定义的名为oltp的测试,但我不知道如何解决它。
感谢您的阅读。
发布于 2017-08-23 14:46:53
从输出中可以看出,您安装了最新的sysbench 1.0。因此,您可以尝试准备命令,如下所示-
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在运行prepare命令之前,打开mysql控制台并创建一个数据库foo - create database foo。如果您的mysql安装在标准位置,则mysql.sock路径不是必填项。
使用上述命令在数据库foo中创建了8个表,您可以使用以下命令在mysql控制台上检查它们- use database foo,show tables等。
然后,您可以按如下方式运行基准测试:
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注意:在sysbench的共享文件夹中有很多工作负载,除了oltp_read_only,你可以绕过它们。github链接上提供了足够的文档- https://github.com/akopytov/sysbench
发布于 2018-05-15 00:49:06
dpkg工具可以方便地显示已安装软件包的文件在系统中的存储位置。我在查找sysbench 1.0.14的测试脚本时使用了它。有关更多选项,请参见手册页
# 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
...https://stackoverflow.com/questions/45584065
复制相似问题