sysbench 0.5有什么用

69次阅读
没有评论

共计 3024 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要介绍 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 有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计3024字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)