• ADADADADAD

    sysbench 0.5有什么用[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:13:39

    作者:文/会员上传

    简介:

    一 前言因为在准备做压力测试方面的工作,看到sysbench 目前最新的版本是0.5 ,相比之前的0.4的版本,最大的变化是 test 参数的改变,在压测MySQL时,新版本中test将取值为 lua脚本,该

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一 前言
    因为在准备做压力测试方面的工作,看到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.luaselect.luaselect_random_ranges.lua update_non_index.lua

      delete.lua oltp.luaparallel_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有什么用.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: sysbench