sysbench 0.5有什么用
发布时间:2021-12-23 18:29:39 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍sysbench 0.5有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 一 前言 因为在准备做压力测试方面的工作,看到sysbench 目前最新的版本是0.5 ,相比之前的0.4的版本,最大的变化是 test 参数的改变,在压
这篇文章主要介绍sysbench 0.5有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 一 前言 因为在准备做压力测试方面的工作,看到sysbench 目前最新的版本是0.5 ,相比之前的0.4的版本,最大的变化是 test 参数的改变,在压测MySQL时,新版本中test将取值为 lua脚本,该种方式给压测工作带来很大的灵活性。 二 安装 因为之前的博文中讲述过如何安装sysbench 故本文不做过多讲解,不过需要提示请确保当前系统中是否安装m4 autoconf automake libtool 这几个包, 如果没有则通过 yum install -y m4 autoconf automake libtool安装 获取sysbench然后安装 ./autogen.sh ./configure --prefix=/opt/sysbench --with-mysql --with-mysql-includes=/opt/mysql/include --with-mysql-libs=/usr/lib64/mysql make and make install安装完成之后 执行sysbench --help 查看完整的帮助。 安装完成之后 执行sysbench --help 查看完整的帮助。 三使用 之前0.5 版本test值是lua脚本,检查一下db压测可以使用那些脚本 [root@rac4 11:32:45 ~/sysbench/sysbench/tests/db] # ls *.lua common.lua insert.lua oltp_simple.lua select.lua select_random_ranges.lua update_non_index.lua delete.lua oltp.lua parallel_prepare.lua select_random_points.lua update_index.lua 看看大家压测的时候用到的最典型的脚本 [root@rac4 11:36:32 ~/sysbench/sysbench/tests/db] # more update_non_index.lua pathtest = string.match(test, "(.*/)") or "" dofile(pathtest .. "common.lua") function thread_init(thread_id) set_vars() end function event(thread_id) local table_name local c_val local query table_name = "sbtest".. sb_rand_uniform(1, oltp_tables_count) c_val = sb_rand_str("###########-###########-###########-###########-###########-###########-###########-###########-###########-###########") query = "UPDATE " .. table_name .. " SET c='" .. c_val .. "' WHERE id=" .. sb_rand(1, oltp_table_size) rs = db_query(query) end 如果大家会lua脚本,则可以根据自己的业务场景,简单的定制化压测脚本。 cd /root/sysbench/ /opt/sysbecn/bin/sysbench --test=./sysbench/tests/db/update_non_index.lua --mysql-table-engine=innodb --mysql-db=test --oltp-table-size=5000000 --mysql-user=root --mysql-socket=/srv/my3308/run/mysql.sock --oltp-tables-count=16 prepare /opt/sysbecn/bin/sysbench --test=./sysbench/tests/db/update_non_index.lua --mysql-table-engine=innodb --mysql-db=test --oltp-table-size=5000000 --mysql-user=root --mysql-socket=/srv/my3308/run/mysql.sock --oltp-tables-count=16 run /opt/sysbecn/bin/sysbench --test=./sysbench/tests/db/update_non_index.lua --mysql-table-engine=innodb --mysql-db=test --oltp-table-size=5000000 --mysql-user=root --mysql-socket=/srv/my3308/run/mysql.sock --oltp-tables-count=16 cleanup 四 遇到的问题 # ./autogen.sh libtoolize 1.4+ wasn't found, exiting # ./autogen.sh automake 1.10.x (aclocal) wasn't found, exiting 说明需要安装 libtool ,automake 的安装包 安装完上述几个包之后,我还遇到了如下错误: libtool: link: gcc -W -Wall -Wextra -Wpointer-arith -Wbad-function-cast -Wstrict-prototypes -Wnested-externs -Winline -funroll-loops -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wcast-align -pthread -O2 -ggdb3 -o sysbench sysbench.o sb_timer.o sb_options.o sb_logger.o db_driver.o tests/fileio/libsbfileio.a tests/threads/libsbthreads.a tests/memory/libsbmemory.a tests/cpu/libsbcpu.a tests/mutex/libsbmutex.a scripting/libsbscript.a drivers/mysql/libsbmysql.a -L/opt/mysql/lib -lmysqlclient_r scripting/lua/src/liblua.a -ldl -lrt -lm -pthread /usr/bin/ld: cannot find -lmysqlclient_r collect2: ld returned 1 exit status 原因是因为自己当前环境中没有安装 mysql-devel 导致没有 libmysqlclient_r.so.16 。解决方法 yum install -y mysql-devel 以上是“sysbench 0.5有什么用”这篇文章的所有内容,感谢各位的阅读! (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |