MYSQL压力测试工具sysbench安装测试详解

合集下载

sysbench用法

sysbench用法

sysbench用法
“sysbench用法”这句话的意思是,描述或讨论与sysbench的使用方法相关的内容。

sysbench是一个模块化、跨平台、多线程的基准测试工具,用于对Linux 系统进行性能测试和评估。

它提供了多种测试模块,如CPU、内存、IO等,可以模拟不同的负载场景,帮助用户评估系统的性能和稳定性。

sysbench的用法包括以下步骤:
1.安装sysbench:首先需要安装sysbench工具,可以从官方网站下载适合
自己操作系统的版本,并进行安装。

2.选择测试模块:根据需要测试的性能类型,选择相应的测试模块。

例如,
如果要测试CPU性能,可以选择CPU测试模块;如果要测试内存性能,可以选择内存测试模块。

3.配置测试参数:根据所选的测试模块,配置相应的测试参数,如线程数、
运行时间等。

4.运行测试:启动sysbench并运行配置好的测试。

sysbench会模拟不同的
负载场景,并记录测试结果。

5.分析结果:根据测试结果,分析系统的性能和稳定性。

sysbench通常会提
供详细的报告和分析数据,帮助用户了解系统的性能瓶颈和改进方向。

总结来说,“sysbench用法”是指使用sysbench工具对Linux系统进行性能测试和评估的方法。

通过选择不同的测试模块和配置相应的测试参数,可以模拟不同的负载场景,并记录测试结果。

最终,根据测试结果进行分析和优化,提高系统的性能和稳定性。

通过sysbench工具实现MySQL数据库的性能测试

通过sysbench工具实现MySQL数据库的性能测试

通过sysbench⼯具实现MySQL数据库的性能测试1.背景sysbench是⼀款压⼒测试⼯具,可以测试系统的硬件性能,也可以⽤来对数据库进⾏基准测试。

sysbench ⽀持的测试有CPU运算性能测试、内存分配及传输速度测试、磁盘IO性能测试、POSIX线程性能测试、互斥性测试测试、数据库性能测试(OLTP基准测试)。

⽬前⽀持的数据库主要是MySQL数据库和PG数据库。

在新服务器上线时,建议对服务器的性能做⼀次测试,最好与既往的同类型的服务器的性能测试报表做⼀个横线⽐较,发现潜在问题。

及新机器上线前,对服务器做⼀次体检。

对数据库⽽⾔,我们可以通过sysbench⼯具实现对数据库的基准测试。

在现在的系统架构中,前端都⽐较容易弹性⽔平拓展,数据库相对较难,因此,基准测试对数据库具有很重要的作⽤。

⽽对数据库的基准测试的作⽤,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从⽽找出MySQL的性能阈值,并根据实际系统的要求调整配置。

2.sysbench的安装1)安装命令yum -y install sysbench2)查看安装的版本sysbench --version3)查看已安装软件的信息(主要是通 rpm 命令)。

查询sysbench的安装信息,主要是测试mysql时,需要使⽤sysbench⾃带的lua脚本进⾏测试。

如果使⽤快速安装的⽅式,默认的脚本路径为:/usr/share/sysbench。

如果不在这个命令,我们我们执⾏以下命令查看,查找已安装在本机Linux系统上⾯的所有的sysbench软件的程序:rpm -qa sysbench列出该软件所有的⽂件与⽬录所在完整⽂件名(list):rpm -ql sysbench3.sysbench 语法sysbench --helpUsage:sysbench [options]... [testname] [command]Commands implemented by most tests: prepare run cleanup helpGeneral options:--threads=N number of threads to use [1]--events=N limit for total number of events [0]--time=N limit for total execution time in seconds [10]--forced-shutdown=STRING number of seconds to wait after the --time limit before forcing shutdown, or 'off' to disable [off]--thread-stack-size=SIZE size of stack per thread [64K]--rate=N average transactions rate. 0for unlimited rate [0]--report-interval=N periodically report intermediate statistics with a specified interval in seconds. 0 disables intermediate reports [0]--report-checkpoints=[LIST,...] dump full statistics and reset all counters at specified points in time. The argument is a list of comma-separated values representing the amount of time in seconds elapsed from start of test when report checkpoin --debug[=on|off] print more debugging info [off]--validate[=on|off] perform validation checks where possible [off]--help[=on|off] print help and exit [off]--version[=on|off] print version and exit [off]--config-file=FILENAME File containing command line options--tx-rate=N deprecated alias for --rate [0]--max-requests=N deprecated alias for --events [0]--max-time=N deprecated alias for --time [0]--num-threads=N deprecated alias for --threads [1]Pseudo-Random Numbers Generator options:--rand-type=STRING random numbers distribution {uniform,gaussian,special,pareto} [special]--rand-spec-iter=N number of iterations used for numbers generation [12]--rand-spec-pct=N percentage of values to be treated as 'special' (for special distribution) [1]--rand-spec-res=N percentage of 'special' values to use (for special distribution) [75]--rand-seed=N seed for random number generator. When 0, the current time is used as a RNG seed. [0]--rand-pareto-h=N parameter h for pareto distribution [0.2]Log options:--verbosity=N verbosity level {5 - debug, 0 - only critical messages} [3]--percentile=N percentile to calculate in latency statistics (1-100). Use the special value of 0 to disable percentile calculations [95]--histogram[=on|off] print latency histogram in report [off]General database options:--db-driver=STRING specifies database driver to use ('help' to get list of available drivers) [mysql]--db-ps-mode=STRING prepared statements usage mode {auto, disable} [auto]--db-debug[=on|off] print database-specific debug information [off]Compiled-in database drivers:mysql - MySQL driverpgsql - PostgreSQL drivermysql options:--mysql-host=[LIST,...] MySQL server host [localhost]--mysql-port=[LIST,...] MySQL server port [3306]--mysql-socket=[LIST,...] MySQL socket--mysql-user=STRING MySQL user [sbtest]--mysql-password=STRING MySQL password []--mysql-db=STRING MySQL database name [sbtest]--mysql-ssl[=on|off] use SSL connections, if available in the client library [off]--mysql-ssl-cipher=STRING use specific cipher for SSL connections []--mysql-compression[=on|off] use compression, if available in the client library [off]--mysql-debug[=on|off] trace all client library calls [off]--mysql-ignore-errors=[LIST,...] list of errors to ignore, or "all" [1213,1020,1205]--mysql-dry-run[=on|off] Dry run, pretend that all MySQL client API calls are successful without executing them [off]pgsql options:--pgsql-host=STRING PostgreSQL server host [localhost]--pgsql-port=N PostgreSQL server port [5432]--pgsql-user=STRING PostgreSQL user [sbtest]--pgsql-password=STRING PostgreSQL password []--pgsql-db=STRING PostgreSQL database name [sbtest]Compiled-in tests:fileio - File I/O testcpu - CPU performance testmemory - Memory functions speed testthreads - Threads subsystem performance testmutex - Mutex performance test基本语法如下:sysbench [options]... [testname] [command]command 是sysbench要执⾏的命令,包括prepare、run和cleanup。

sysbench5.0测试MySQL服务器性能(cpu,io,内存,mysql等)

sysbench5.0测试MySQL服务器性能(cpu,io,内存,mysql等)

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查看内 存信息
# cat /proc/meminfo
在sysbench的测试中,--num-threads取值为"线程数量"即可,再大的值没有什么意义,对测试结果也没有什么影响。
2、线程测试
sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run
sysbench的安装和做性能测试
sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:。
它主要包括以下几种方式的测试:
1、cpu性能
2、磁盘io性能
查看核心数量
grep "core id" /proc/cpuinfo | sort -u | wc -l
查看线程数量
grep "processor" /proc/cpuinfo | sort -u | wc -l
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

mysql benchmark 用法

mysql benchmark 用法

mysql benchmark 用法1. 引言1.1 概述引言部分将介绍mysql benchmark的主题和内容。

数据库系统在现代软件开发中占据着重要的地位,而mysql作为一种常用的关系型数据库管理系统,对于性能评估和优化至关重要。

本文将深入探讨mysql benchmark的用法,并针对测试结果进行分析和解读。

1.2 文章结构文章将按照以下结构展开讨论:- 引言:介绍本文的背景和目标;- mysql benchmark简介:对mysql benchmark进行定义、说明其作用以及适用场景,并概述相关工具;- mysql benchmark步骤:详细描述使用mysql benchmark前的准备工作,参数配置方法以及运行测试流程;- mysql benchmark结果分析:分析不同测试指标的含义,提出性能优化建议,并进行结果说明与比较;- 结论与展望:总结文章主要观点并展望mysql benchmark未来的发展方向。

通过以上结构安排,读者能够更好地理解mysql benchmark的全貌及其应用价值。

1.3 目的本文旨在详细介绍mysql benchmark工具的使用方法,并通过对测试结果的分析来提供性能优化建议。

通过阅读本文,读者将了解到如何利用mysql benchmark评估数据库性能、找到性能瓶颈并采取相应的优化策略。

此外,本文还将对mysql benchmark工具进行全面解析,帮助读者更好地理解其内部原理和使用场景。

最终目标是让读者能够充分利用mysql benchmark来构建高性能的数据库系统,提升软件开发过程中对数据库性能的把控能力。

2. mysql benchmark 简介2.1 定义与作用MySQL Benchmark是一个用于测试和评估MySQL数据库性能的工具。

它通过模拟实际生产环境中的负载情况,对MySQL数据库进行各种压力和性能测试,并提供详细的指标和报告。

MySQL Benchmark的主要作用是帮助开发人员、DBA以及系统管理员了解他们的MySQL数据库在处理大型数据集或高并发访问时的性能表现。

sysbench安装和使用

sysbench安装和使用

sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。

目前支持的数据库有MySQL、Oracle和PostgreSQL。

以下操作都将以支持MySQL数据库为例进行。

下载源码包在/projects/sysbench/网站上下载,我下载到的源码包是sysbench-0.4.12.tar.gz。

环境准备我的系统是CentOS 5.5,在进行编译安装前需要先进性相关软件的安装和更新。

首先,安装和更新gcc,否则在编译安装时会报错误:configure: error: no acceptable C compiler found in $PATH,安装命令为:yum install gcc。

其次,安装和更新libtool,否则在编译安装时会报类似错误:../libtool: line 838: X--tag=CC: command not found../libtool: line 871: libtool: ignoring unknown tag : command not found../libtool: line 838: X--mode=link: command not found../libtool: line 1004: *** Warning: inferring the mode of operation is deprecated.: command not found../libtool: line 1005: *** Future versions of Libtool will require --mode=MODE be specified.: command not found../libtool: line 2231: X-g: command not found../libtool: line 2231: X-O2: command not found../libtool: line 2231: X-rdynamic: command not found../libtool: line 1951: X-L/usr/lib/mysql: No such file or directory../libtool: line 2400: Xsysbench: command not foundFatal server error:Server is already active for display 0If this server is no longer running, remove /tmp/.X0-lockand start again.../libtool: line 2412: Xsysbench: command not found../libtool: line 2547: X-lmysqlclient_r: command not found../libtool: line 2547: X-lz: command not found../libtool: line 2547: X-lcrypt: command not found../libtool: line 2547: X-lnsl: command not found../libtool: line 2547: X-lm: command not found../libtool: line 2547: X-lmygcc: command not found../libtool: line 2547: X-lrt: command not found../libtool: line 2547: X-lm: command not found../libtool: line 2629: X-L/root/tool/sysbench-0.4.12/sysbench: No such file or directory ../libtool: line 2547: X-lmysqlclient_r: command not found../libtool: line 2547: X-lz: command not found../libtool: line 2547: X-lcrypt: command not found../libtool: line 2547: X-lnsl: command not found../libtool: line 2547: X-lmygcc: command not found../libtool: line 2547: X-lrt: command not found../libtool: line 2547: X-lm: command not found../libtool: line 2629: X-L/root/tool/sysbench-0.4.12/sysbench: No such file or directory ../libtool: line 2547: X-lmysqlclient_r: command not found../libtool: line 2547: X-lz: command not found../libtool: line 2547: X-lcrypt: command not found../libtool: line 2547: X-lnsl: command not found../libtool: line 2547: X-lmygcc: command not found../libtool: line 2547: X-lrt: command not found../libtool: line 2547: X-lm: command not found../libtool: line 5162: Xgcc -pthread "" "" -o @OUTPUT@ 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/oltp/libsboltp.a tests/mutex/libsbmutex.a drivers/mysql/libsbmysql.a -L/root/tool/sysbench-0.4.12/sysbench -lmysqlclient_r -lz -lcrypt -lnsl -lmygcc -lrt -lm: No such file or directory../libtool: line 5163: Xgcc -pthread "" "" -o @OUTPUT@ 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/oltp/libsboltp.a tests/mutex/libsbmutex.a drivers/mysql/libsbmysql.a -L/root/tool/sysbench-0.4.12/sysbench -lmysqlclient_r -lz -lcrypt -lnsl -lmygcc -lrt -lm: No such file or directory安装命令为:yum install libtool第三:需要mysql下需要安装MySQL-devel-5.0.22-0.i386.rpm、MySQL-shared-5.0.22-0.i386.rpm、MySQL-bench-5.0.22-0.i386.rpm编译安装准备好环境之后就可以开始进行编译安装了。

sysbench 数据库用法

sysbench 数据库用法

sysbench 数据库用法Sysbench是一个基准测试工具,能够对计算机系统进行性能测试,其中包括CPU、内存、文件IO、网络IO等方面。

当然,Sysbench还支持数据库性能测试,可以测试MySQL、PostgreSQL等数据库的性能。

下面介绍一下使用Sysbench测试数据库的方法。

1. 安装Sysbench首先需要确保Sysbench已经安装,如果没有安装的话,需要先安装Sysbench。

对于Debian/Ubuntu系统可以使用如下命令安装Sysbench:bashsudo apt-get install sysbench对于RHEL/CentOS系统可以使用如下命令安装Sysbench:bashsudo yum install sysbench2. 准备数据库在进行数据库性能测试前,需要首先准备好要测试的数据库。

这里以MySQL为例,需要先安装和配置好MySQL数据库。

3. 创建测试表使用Sysbench进行数据库性能测试,需要先创建一个测试表。

Sysbench提供了相应的命令来创建测试表:bashsysbench [options] db-driver=mysql mysql-password=[password] mysql-user=[user] mysql-db=[database] table-size=[number of rows] tables=[number of tables] create-table在这里需要使用相应的参数来指定要测试的数据库、用户、密码、测试表的名称、表中行数和表的数量等,具体参数说明如下:db-driver:指定数据库类型,这里指定为MySQL。

mysql-password:指定MySQL用户的密码。

mysql-user:指定MySQL用户的名称。

mysql-db:指定要使用的MySQL数据库名称。

table-size:指定测试表中的行数。

sysbench压力测试总结

sysbench压力测试总结

sysbench压⼒测试总结sysbench压⼒测试⼯具简介sysbench是⼀个开源的、模块化的、跨平台的多线程性能测试⼯具,可以⽤来进⾏CPU、内存、磁盘I/O、线程、数据库的性能测试。

⽬前⽀持的数据库有MySQL、Oracle和PostgreSQL。

以下操作都将以⽀持MySQL数据库为例进⾏Sysbench的测试主要包括以下⼏个⽅⾯:1、磁盘io性能2、cpu性能3、内存分配及传输速度4、POSIX线程性能5、调度程序性能6、数据库性能(OLTP基准测试)安装ubuntu下安装sysbench1.0wget https:///akopytov/sysbench/archive/1.0.zip -O "sysbench-1.0.zip"unzip sysbench-1.0.zipapt-get install automake -yapt-get install libtool -y./autogen.sh./configure --without-mysql备注( --without-mysql 不编译测试mysql的相关环境)makemake install1、磁盘io性能⽂件IO的测试主要⽤于测试IO的负载性能。

主要的测试选项为--file-test-mode。

还有⼏个可以关注的参数包括--file-block-size、--file-io-mode、--file-fsync-freq 、--file-rw-ratio指令: prepare(测试前准备⼯作) run(正式测试) cleanup(测试后删掉测试数据) help versionSee 'sysbench --test=<name> help' for a list of options for each test. 查看每个测试项⽬的更多选项列表。

sysbench --test=fileio help--file-num=N 创建测试⽂件的数量。

sysbench环境安装,压测mysql

sysbench环境安装,压测mysql

sysbench环境安装,压测mysql 源码路径:https:///akopytov/sysbench版本linux 6.8sysbench 0.5mysql 5.6.291、安装pip略2、pip 安装bzrpip install bzr3、下载sysbenchcd /tmpbzr branch lp:sysbench4、安装依赖,否则报错yum -y install m4 autoconf automake libtool例如:libtoolize 1.4+ wasn't found, exiting5、安装sysbench./autogen.sh./configure --prefix=/usr/local/sysbench -with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib makemake install#复制lua脚本⾄安装⽬录上去cp -a sysbench/tests/db /usr/local/sysbench/#设置环境变量echo "export PATH=\$PATH:/usr/local/sysbench/bin/" >/etc/profile.d/sysbench.shsource /etc/profile.d/sysbench.sh6、创建数据库sbtestCREATE DATABASE `sbtest` /*!40100 DEFAULT CHARACTER SET utf8 */7、初始化测试数据sysbench --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=xxxxxx \--test=/usr/local/sysbench/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on prepare8、压测mysqlsysbench --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root \--mysql-password=xxxxxx --test=/usr/local/sysbench/db/oltp.lua --oltp_tables_count=10 \--oltp-table-size=10000000 --num-threads=8 --oltp-read-only=off \--report-interval=10 --rand-type=uniform --max-time=3600 \--max-requests=0 --percentile=99 run9、清除测试数据sysbench --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=xxxxxx \--test=/usr/local/sysbench/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on cleanup。

数据库性能测试:sysbench用法详解

数据库性能测试:sysbench用法详解

数据库性能测试:sysbench⽤法详解1.简介和安装sysbench是⼀个很不错的数据库性能测试⼯具。

如果是编译安装,需要先安装好mysql的开发包(尽管编译错误时提⽰的是缺少Mysql库⽂件)。

yum -y install mysql-community-develtar xf 1.0.15.tar.gzcd sysbench-1.0.15./autogen.sh./configuremake -jmake install安装后,只有⼀个⼆进制⽂件sysbench,还提供了很多个lua脚本。

[root@s1 ~]# rpm -ql sysbench | grep 'bin\|lua'/usr/bin/sysbench/usr/share/sysbench/bulk_insert.lua/usr/share/sysbench/oltp_common.lua/usr/share/sysbench/oltp_delete.lua/usr/share/sysbench/oltp_insert.lua/usr/share/sysbench/oltp_point_select.lua/usr/share/sysbench/oltp_read_only.lua/usr/share/sysbench/oltp_read_write.lua/usr/share/sysbench/oltp_update_index.lua/usr/share/sysbench/oltp_update_non_index.lua/usr/share/sysbench/oltp_write_only.lua/usr/share/sysbench/select_random_points.lua/usr/share/sysbench/select_random_ranges.lua/usr/share/sysbench/tests/include/inspect.lua/usr/share/sysbench/tests/include/oltp_legacy/bulk_insert.lua/usr/share/sysbench/tests/include/oltp_legacy/common.lua/usr/share/sysbench/tests/include/oltp_legacy/delete.lua/usr/share/sysbench/tests/include/oltp_legacy/insert.lua/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua/usr/share/sysbench/tests/include/oltp_legacy/oltp_simple.lua/usr/share/sysbench/tests/include/oltp_legacy/parallel_prepare.lua/usr/share/sysbench/tests/include/oltp_legacy/select.lua/usr/share/sysbench/tests/include/oltp_legacy/select_random_points.lua/usr/share/sysbench/tests/include/oltp_legacy/select_random_ranges.lua/usr/share/sysbench/tests/include/oltp_legacy/update_index.lua/usr/share/sysbench/tests/include/oltp_legacy/update_non_index.lua本⽂介绍的是新版本sysbench oltp lua脚本的⽤法(/usr/share/sysbench/*.lua),所以不涉及传统的lua(tests/include/oltp_legacy/*.lua),如果想要了解这些传统Lua脚本的⽤法,⽹上随便找。

Sysbench对Mysql进行基准测试过程解析

Sysbench对Mysql进行基准测试过程解析

Sysbench对Mysql进⾏基准测试过程解析前⾔1.基准测试(benchmarking)是性能测试的⼀种类型,强调的是对⼀类测试对象的某些性能指标进⾏定量的、可复现、可对⽐的测试。

进⼀步来理解,基准测试是在某个时候通过基准测试建⽴⼀个已知的性能⽔平(称为基准线),当系统的软硬件环境发⽣变化之后再进⾏⼀次基准测试以确定那些变化对性能的影响,这也是基准测试最常见的⽤途。

其他⽤途包括测定某种负载⽔平下的性能极限、管理系统或环境的变化、发现可能导致性能问题的条件等等。

2.基准测试的作⽤:对于⼤多数Web应⽤⽽⾔,系统的瓶颈往往很容易发⽣在数据库端,原因很简单:Web应⽤中的其他因素,例如⽹络带宽、负载均衡节点、应⽤服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过⽔平的扩展(俗称加机器)来实现性能的提⾼。

⽽对于数据库如MySQL,由于数据⼀致性的要求,⽆法通过增加机器来分散向数据库写数据带来的压⼒;虽然可以通过前置缓存(Redis 等)、读写分离、分库分表来减轻压⼒,但是与系统其它组件的⽔平扩展相⽐,受到了太多的限制。

⽽对数据库的基准测试的作⽤,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从⽽找出数据库的性能阈值,并根据实际系统的要求调整配置。

除此之外,对数据库服务器进⾏基准测试,也通常⽤于观察对⽐数据库结构修改之前以及修改之后,其性能会受到什么样的影响。

3.基准测试与压⼒测试区别:很多时候,基准测试和压⼒测试在实际使⽤的过程中,很容易被弄混淆。

基准测试可以理解为针对系统的⼀种压⼒测试。

但基准测试不关⼼业务逻辑,更加简单、直接、易于测试,数据可以由⼯具⽣成,不要求真实;⽽压⼒测试⼀般考虑业务逻辑(如购物车业务),要求真实的数据。

4.基准测试⼯具:SysBench是⼀个模块化的、跨平台、多线程基准测试⼯具,主要⽤于评估测试各种不同系统参数下的数据库负载情况。

sysbench安装、使用和测试

sysbench安装、使用和测试

sysbench安装、使⽤和测试摘要:sysbench是⼀个开源的、模块化的、跨平台的多线程性能测试⼯具,可以⽤来进⾏CPU、内存、磁盘I/O、线程、数据库的性能测试。

⽬前⽀持的数据库有MySQL、Oracle和PostgreSQL。

当前功能允许测试的系统参数有:file I/O performance (⽂件I / O性能)scheduler performance (调度性能)memory allocation and transfer speed (内存分配和传输速度)POSIX threads implementation performance (POSIX线程执⾏绩效)database server performance (OLTP benchmark) (数据库服务器性能)安装:1):Ubuntu系统可以直接apt,如:apt-get install sysbench2):其他系统的则可以编译安装[在/home/zhoujy/⽬录下]:(安装前先装automake,libtool)wget /project/sysbench/sysbench/0.4.12/sysbench-0.4.12.tar.gztar zxvf sysbench-0.4.12.tar.gz进⼊解压⽬录,并且创建安装⽬录:root@m2:/home/zhoujy# cd sysbench-0.4.12/root@m2:/home/zhoujy/sysbench-0.4.12# mkdir /usr/sysbench/准备编译root@m2:/home/zhoujy/sysbench-0.4.12# apt-get install automakeroot@m2:/home/zhoujy/sysbench-0.4.12#apt-get install libtoolroot@m2:/home/zhoujy/sysbench-0.4.12# ./autogen.sh要是出现:perl: warning: Falling back to the standard locale ("C")。

MySQL数据库压力测试的方法与工具

MySQL数据库压力测试的方法与工具

MySQL数据库压力测试的方法与工具1. 引言MySQL是一种常用的关系型数据库,它的性能对于许多应用来说非常重要。

为了保证MySQL数据库在高负载情况下的稳定性和性能,压力测试成为一项必要的工作。

本文将介绍MySQL数据库压力测试的方法与工具,帮助读者有效地评估MySQL数据库的性能表现。

2. 压力测试的重要性压力测试是模拟并发用户对数据库系统进行大量请求的过程,目的是测试数据库在高负载情况下的稳定性和性能。

通过压力测试,可以发现数据库可能存在的性能瓶颈和问题,并采取相应的措施进行优化。

3. 压力测试的基本原则在进行MySQL数据库压力测试之前,有一些基本原则需要遵循:- 定义压力测试的目标和场景:明确测试的目标和场景,例如测试数据库的并发能力、响应时间等。

- 模拟真实的使用情况:尽量模拟真实的用户行为,包括读取、写入、更新等操作。

- 使用真实的数据量:使用具有代表性的数据量进行测试,以便更准确地评估数据库的性能。

- 监控和记录结果:使用合适的工具监控数据库的性能指标,并记录测试结果,以便分析和优化。

4. 压力测试的步骤下面是进行MySQL数据库压力测试的一般步骤:1) 创建测试数据:根据测试场景,创建具有代表性的测试数据集。

2) 设置测试环境:搭建测试环境,包括MySQL数据库的部署和配置。

3) 定义测试脚本:编写测试脚本,模拟用户的操作行为,包括读取、写入、更新等操作。

4) 执行测试脚本:运行测试脚本,模拟大量并发用户对数据库进行操作。

5) 监控和记录性能指标:使用合适的工具监控数据库的性能指标,如响应时间、吞吐量等,并记录测试结果。

6) 分析和优化:根据测试结果,分析数据库可能存在的性能瓶颈和问题,并采取优化措施。

7) 重复测试和验证:根据优化后的设置,重新运行测试脚本,验证优化效果。

5. 压力测试工具为了简化和自动化压力测试的过程,有许多开源的压力测试工具可供选择。

下面介绍几种常用的MySQL数据库压力测试工具:- Apache JMeter:JMeter是一款功能强大的压力测试工具,支持模拟多种协议,包括HTTP、FTP、MySQL等。

使用MySQL进行数据库性能压力测试和评估

使用MySQL进行数据库性能压力测试和评估

使用MySQL进行数据库性能压力测试和评估引言:数据库是现代应用的核心组件之一,扮演着数据存储和管理的关键角色。

而对于大规模应用来说,数据库的性能和可伸缩性是至关重要的。

为了确保数据库的性能能够满足业务需求,我们需要进行数据库性能压力测试和评估。

本文将介绍如何使用MySQL进行数据库性能压力测试,以及如何根据评估结果对其进行优化。

一、数据库性能压力测试的意义数据库性能压力测试是使用模拟真实负载情况的工具对数据库系统进行测试,以评估其在高并发、大数据量、复杂查询等场景下的性能表现。

通过性能压力测试,我们可以了解数据库在高负载下的表现,并找到存在的性能瓶颈和潜在问题,从而有针对性地进行优化。

二、MySQL性能测试工具的选择MySQL自带了一些性能测试工具,如sysbench、mysqlslap等。

其中,sysbench是一个功能强大且广泛使用的开源工具,可以用于测试数据库的CPU、I/O和内存性能。

而mysqlslap则是一个基于SQL语句的性能测试工具,可以模拟多用户的并发访问。

三、使用sysbench进行MySQL性能测试1. 安装sysbench:可以通过源码或包管理器进行安装,具体方法可参考sysbench的官方文档。

2. 准备测试数据:sysbench提供了多种测试场景,包括数据库压力测试、线程锁测试等。

在进行数据库压力测试时,需要创建一定数量的测试表,并插入适量的测试数据。

3. 执行性能测试:使用sysbench命令指定测试场景、并发用户数、测试时长等参数,执行数据库性能测试。

测试结果会显示每秒钟的事务处理量(TPS)和平均响应时间等指标。

四、使用mysqlslap进行MySQL性能测试1. 准备测试脚本和参数:mysqlslap使用SQL语句作为测试脚本,可以通过命令行参数设置并发用户数、运行次数、连接参数等。

2. 执行性能测试:使用mysqlslap命令执行SQL脚本,并指定并发用户数和运行次数等参数。

mysql benchmark 用法 -回复

mysql benchmark 用法 -回复

mysql benchmark 用法-回复MySQL Benchmark 用法详解MySQL 是一个开源的关系型数据库管理系统,被广泛用于各种规模的应用和网站。

为了确保MySQL 数据库系统的可靠性和性能,我们可以使用MySQL Benchmark 工具来测试和评估其性能。

本篇文章将一步一步回答关于MySQL Benchmark 工具的用法。

第一步:什么是MySQL Benchmark?MySQL Benchmark 是由MySQL 提供的一种基准测试工具,旨在评估和比较不同硬件、软件或配置方案下的数据库性能。

通过运行一系列的测试用例,我们可以获得有关数据库系统的各种性能指标,例如查询响应时间、并发处理能力和吞吐量。

第二步:下载和安装MySQL BenchmarkMySQL Benchmark 工具是与MySQL Server 捆绑在一起的,因此您可以通过下载和安装MySQL Server 来获取Benchmark 工具。

根据您的操作系统类型,您可以从MySQL 官方网站下载适当的安装程序。

安装过程相对简单,您只需按照安装向导的指示进行操作即可。

第三步:编写测试用例在进行基准测试之前,我们需要编写一些测试用例来评估MySQL 数据库的性能。

测试用例应该涵盖数据库中的各种操作,包括查询、插入、更新和删除等。

您可以使用SQL 语句来定义每个测试用例,并确保测试用例具有一定的复杂性,以模拟真实的数据库工作负载。

以下是一个示例测试用例,用于评估数据库的查询性能:测试用例1: 查询用户表中的所有记录SELECT * FROM users;您可以编写多个测试用例,并根据需要定义参数、条件和限制。

第四步:运行基准测试一旦编写了测试用例,我们就可以使用MySQL Benchmark 工具来运行基准测试。

在命令行中,使用以下命令来启动基准测试:mysqlslap host=<MySQL服务器地址> user=<用户名> password=<密码> concurrency=<并发数> iterations=<迭代次数>create-schema=<数据库名> query=<测试用例文件>参数说明:- `host`:MySQL 服务器的地址- `user`:连接到MySQL 服务器的用户名- `password`:连接到MySQL 服务器的密码- `concurrency`:每次迭代并发处理的客户端连接数- `iterations`:总共运行基准测试的迭代次数- `create-schema`:指定用于基准测试的数据库名- `query`:包含测试用例的SQL 文件路径您可以根据实际情况调整这些参数,并根据需要添加其他选项。

sysbench对mysql压力测试的详细教程

sysbench对mysql压力测试的详细教程

sysbench对mysql压⼒测试的详细教程前⾔在对⽹站整体性能进⾏benchmark时,可以使⽤多种⼯具,⽐如⼤名⿍⿍的ab(Apache bench),http_load等⼯具。

这⾥我们不关注他们的使⽤,如果你想了解,可以⾃⾏在⽹上找到答案。

重点来说MySQL的基准测试如何进⾏,也有很多种⼯具来供我们选择,⽐如mysqlslap、sysbench、Super Smack等,其中mysqlslap的使⽤MySQL官⽹给出了介绍,Super Smack是服务器压⼒测试强有⼒的⼯具,那么sysbench便是我们进⾏MySQL基准测试的很漂亮的⼯具了。

sysbenchsysbench是⼀款开源的多线程性能测试⼯具,可以执⾏CPU/内存/线程/IO/数据库等⽅⾯的性能测试。

数据库⽬前⽀持MySQL/Oracle/PostgreSQL;它主要包括以下⼏种⽅式的测试:1、cpu性能2、磁盘io性能3、调度程序性能4、内存分配及传输速度5、POSIX线程性能6、数据库性能(OLTP基准测试)sysbench的数据库OLTP测试⽀持MySQL、PostgreSQL、Oracle,⽬前主要⽤于Linux操作系统,开源社区已经将sysbench移植到了Windows,并⽀持SQL Server的基准测试。

废话不多说,开始。

⼀、sysbench安装mysql版本: mysql-community-server-5.6.29OS: CentOS 6.7 X86_64sysbench 0.5相⽐0.4版本有⼀些变化,包括oltp测试结合了lua脚本,还多了⼀些隐藏选项,本⽂会涉及得到⼀部分。

// 先安装编译依赖环境$ sudo yum install gcc gcc-c++ automake make libtool mysql-community-devel$ cd /tmp && git clone https:///akopytov/sysbench.git$ cd /tmp/sysbench && ./autogen.sh$ ./configure --prefix=/usr/local/sysbench-0.5$ ./make && sudo make install// 0.5版本需要oltp.lua测试脚本// 如果是rpm包⽅式安装的,在 /usr/share/doc/sysbench/tests/db/ 下可找到$ cd /usr/local/sysbench && sudo mkdir -p share/tests/db$ cp /tmp/sysbench/sysbench/tests/db/*.lua share/tests/db/$ ./bin/sysbench --versionsysbench 0.5如果需要测试PostgreSQL、Oracle,则在configure时需要加上 –with-oracle 或者–with-pgsql 参数⼆、使⽤sysbench对mysql压测2.1 只读⽰例./bin/sysbench --test=./share/tests/db/oltp.lua \--mysql-host=10.0.201.36 --mysql-port=8066 --mysql-user=ecuser --mysql-password=ecuser \--mysql-db=dbtest1a --oltp-tables-count=10 --oltp-table-size=500000 \--report-interval=10 --oltp-dist-type=uniform --rand-init=on --max-requests=0 \--oltp-test-mode=nontrx --oltp-nontrx-mode=select \--oltp-read-only=on --oltp-skip-trx=on \--max-time=120 --num-threads=12 \[prepare|run|cleanup]注意最后⼀⾏,⼀项测试开始前需要⽤prepare来准备好表和数据,run执⾏真正的压测,cleanup⽤来清除数据和表。

使用sysbench对mysql压力测试

使用sysbench对mysql压力测试

使⽤sysbench对mysql压⼒测试数据库的基准测试是对数据库的性能指标进⾏定量的、可复现的、可对⽐的测试。

基准测试与压⼒测试基准测试可以理解为针对系统的⼀种压⼒测试。

但基准测试不关⼼业务逻辑,更加简单、直接、易于测试,数据可以由⼯具⽣成,不要求真实;⽽压⼒测试⼀般考虑业务逻辑(如购物车业务),要求真实的数据。

2、基准测试的作⽤对于多数Web应⽤,整个系统的瓶颈在于数据库;原因很简单:Web应⽤中的其他因素,例如⽹络带宽、负载均衡节点、应⽤服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过⽔平的扩展(俗称加机器)来实现性能的提⾼。

⽽对于MySQL,由于数据⼀致性的要求,⽆法通过增加机器来分散向数据库写数据带来的压⼒;虽然可以通过前置缓存(Redis等)、读写分离、分库分表来减轻压⼒,但是与系统其它组件的⽔平扩展相⽐,受到了太多的限制。

⽽对数据库的基准测试的作⽤,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从⽽找出MySQL的性能阈值,并根据实际系统的要求调整配置。

3、基准测试的指标常见的数据库指标包括:TPS/QPS:衡量吞吐量。

响应时间:包括平均响应时间、最⼩响应时间、最⼤响应时间、时间百分⽐等,其中时间百分⽐参考意义较⼤,如前95%的请求的最⼤响应时间。

并发量:同时处理的查询请求的数量。

4、基准测试的分类对MySQL的基准测试,有如下两种思路:(1)针对整个系统的基准测试:通过http请求进⾏测试,如通过浏览器、APP或postman等测试⼯具。

该⽅案的优点是能够更好的针对整个系统,测试结果更加准确;缺点是设计复杂实现困难。

(2)只针对MySQL的基准测试:优点和缺点与针对整个系统的测试恰好相反。

在针对MySQL进⾏基准测试时,⼀般使⽤专门的⼯具进⾏,例如mysqlslap、sysbench等。

其中,sysbench⽐mysqlslap更通⽤、更强⼤,且更适合Innodb(因为模拟了许多Innodb的IO特性),下⾯介绍使⽤sysbench进⾏基准测试的⽅法。

使用sysbench来测试MySQL性能的详细教程

使用sysbench来测试MySQL性能的详细教程

使⽤sysbench来测试MySQL性能的详细教程⼀、下载源码包安装epel包后以便安装bzr客户端:rpm -Uvh /pub/epel/5/i386/epel-release-5-4.noarch.rpm然后就可以开始安装bzr客户端了:yum install bzr之后,就可以开始⽤bzr客户端下载tpcc-mysql源码了。

cd /tmpbzr branch lp:sysbenchMySQL中⽂⽹便捷下载地址:sysbench⽀持以下⼏种测试模式:1、CPU运算性能2、磁盘IO性能3、调度程序性能4、内存分配及传输速度5、POSIX线程性能6、数据库性能(OLTP基准测试)⽬前sysbench主要⽀持 mysql,drizzle,pgsql,oracle 等⼏种数据库。

⼆、编译安装编译⾮常简单,可参考 README ⽂档,简单步骤如下:cd /tmp/sysbench-0.4.12-1.1./autogen.sh./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make# 如果 make 没有报错,就会在 sysbench ⽬录下⽣成⼆进制命令⾏⼯具 sysbenchls -l sysbench-rwxr-xr-x 1 root root 3293186 Sep 21 16:24 sysbench三、OLTP测试前准备初始化测试库环境(总共10个测试表,每个表 100000 条记录,填充随机⽣成的数据):cd /tmp/sysbench-0.4.12-1.1/sysbenchmysqladmin create sbtest./sysbench --mysql-host=1.2.3.4 --mysql-port=3317 --mysql-user=tpcc --mysql-password=tpcc \--test=tests/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on prepare关于这⼏个参数的解释:--test=tests/db/oltp.lua 表⽰调⽤ tests/db/oltp.lua 脚本进⾏ oltp 模式测试--oltp_tables_count=10 表⽰会⽣成 10 个测试表--oltp-table-size=100000 表⽰每个测试表填充数据量为 100000--rand-init=on 表⽰每个测试表都是⽤随机数据来填充的如果在本机,也可以使⽤ –mysql-socket 指定 socket ⽂件来连接。

sysbench安装和使用

sysbench安装和使用

sysbench安装和使⽤sysbench介绍SysBench是⼀个模块化的、跨平台、多线程基准测试⼯具,主要⽤于评估测试各种不同系统参数下的数据库负载情况。

它主要包括以下⼏种⽅式的测试:1. cpu性能2. 磁盘io性能3. 线程调度性能4. 互斥锁性能5. 数据库性能(OLTP基准测试)6. 内存性能安装环境操作系统:VMware虚拟CentOS 7数据库:MySQL 5.6.24安装步骤1. github下载sysbench的源码zip包:sysbench-0.4.zip到本地⽬录,如:/home/mahj/software⽬录下;2. 在/home/mahj/software⽬录下运⾏命令:unzip sysbench-0.4.zip,解压zip包,会⽣成sysbench-0.4⽬录;3. 进⼊sysbench-0.4⽬录,运⾏命令:./autogen.sh。

这⼀步可能会报错:automake 1.10.x (aclocal) wasn’t found, exiting。

这说明你的操作系统没有安装automake,运⾏命令:yum install automake.noarch,即可安装。

然后再运⾏./autogen.sh命令,⼜报错:libtoolize 1.4+ wasn’t found, exiting。

说明你的操作系统没有安装libtool,运⾏命令:yum install libtool,即可安装。

继续运⾏4. 运⾏make命令,可能会报错:drv_mysql.c:35:19: fatal error: mysql.h: No such file or directory。

这是因为,你本机没有安装mysql的开发lib库导致的,运⾏命令:yum install mysql-community-devel.x86_64,即可安装。

然后运⾏make命令,即可正确。

5. 运⾏make install;6. 运⾏sysbench –help测试安装是否正常。

MySQL中的压力测试和性能评测方法与工具

MySQL中的压力测试和性能评测方法与工具

MySQL中的压力测试和性能评测方法与工具MySQL是一种常用的关系型数据库管理系统,被广泛应用于各种规模的应用和网站。

在面对大量数据和复杂查询时,我们需要对MySQL进行压力测试和性能评测,以确保其稳定性和可靠性。

本文将介绍MySQL中的压力测试和性能评测方法与工具。

一、压力测试的意义和目的压力测试是指在大负载情况下对系统进行测试,以确定其在正常或最大负载下的性能和稳定性。

在MySQL中,压力测试的目的是为了找出系统中的瓶颈并优化其性能,以确保在高负载环境下能够正确运行和维持高响应速度。

二、压力测试的步骤和方法1. 设计测试方案首先,我们需要确定要测试的MySQL系统的配置和参数设置,例如数据库的大小、并发连接数等。

根据应用场景和用户需求,设计一套符合实际情况的测试方案。

2. 准备测试数据为了能够真实模拟实际使用情况,我们需要准备一定规模的测试数据。

可以使用生成器或者复制真实数据的方式来创建测试数据集。

3. 执行测试任务根据测试方案,使用合适的工具和命令执行测试任务。

可以使用MySQL自带的命令行工具或第三方工具来执行负载测试。

4. 监控和记录结果在测试过程中,需要实时监控MySQL服务器的各项指标,如CPU利用率、内存使用量、磁盘IO等。

同时,记录每个测试任务的执行时间和各项指标,以便后续分析和对比。

5. 分析结果并优化根据测试结果和指标分析,找出系统的瓶颈和性能瓶颈。

可以通过优化查询语句、调整参数配置、增加硬件资源等方式来提高系统的性能和吞吐量。

三、性能评测的方法和指标性能评测是对系统性能进行全面和综合的评估和测试。

在MySQL中,可以使用以下方法和指标进行性能评测。

1. 基准测试基准测试是通过执行一系列标准化的测试用例来评估系统的性能和稳定性。

可以根据实际场景和需求设计一套标准测试用例,并使用合适的工具和命令执行测试,并记录各项指标和结果。

2. 并发测试并发测试是通过模拟多个用户同时操作系统来评估系统在并发环境下的性能。

使用MySQL进行数据库压力测试和性能评估

使用MySQL进行数据库压力测试和性能评估

使用MySQL进行数据库压力测试和性能评估随着互联网的快速发展,数据库成为了各个企业和组织不可或缺的核心系统之一。

而数据库的性能对于系统的稳定性和可靠性有着重要的影响。

为了确保数据库能够稳定高效地工作,进行数据库压力测试和性能评估是至关重要的一环。

本文将介绍如何使用MySQL进行数据库压力测试和性能评估。

一、数据库压力测试数据库压力测试是指对数据库系统进行大量的并发操作,以模拟实际生产环境下的使用情况,通过观察数据库的响应时间、吞吐量和并发能力等指标来评估数据库系统的性能和稳定性。

下面将介绍如何使用MySQL进行数据库压力测试。

1. 压力测试工具选择在进行数据库压力测试之前,我们首先需要选择一个合适的压力测试工具。

常见的MySQL压力测试工具包括 Sysbench、HammerDB和MySQLslap等。

根据实际需求和系统环境选择一个适合的工具进行测试。

2. 创建测试数据在进行数据库压力测试之前,我们需要先创建测试数据。

测试数据应该具有一定的规模和多样性,以模拟真实生产环境中的数据。

可以使用生成测试数据的工具,如DataGenerator来生成测试数据。

3. 设计测试场景测试场景是指一组操作序列,用来模拟真实环境中的数据库使用情况。

根据实际需求设计测试场景,并确定测试场景的并发数、操作类型和持续时间等参数。

4. 执行压力测试配置好测试工具和测试数据之后,就可以开始执行压力测试了。

在执行测试时,需要注意监控数据库的性能指标,如响应时间、吞吐量和并发能力等,以便分析测试结果。

5. 分析测试结果在压力测试结束后,需要对测试结果进行分析。

可以利用测试工具提供的分析功能,或者使用性能分析工具如Explain和Slow Query Log来分析SQL语句的性能瓶颈,找出性能问题的根源。

二、数据库性能评估数据库性能评估是指对数据库系统进行全面的性能分析和评估,以确定数据库系统的瓶颈和改进方向。

下面将介绍如何使用MySQL进行数据库性能评估。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MYSQL压力测试工具sysbench安装测试详解sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试,数据库目前支持MySQL/Oracle/PostgreSQL,下面我们来看看它的安装与测试.如果评测一台mysql数据库的压力,可以使用sysbench来测试,具体的操作出下,先安装sysbench工具,安装操作如下.安装环境CentOS release 5.4 (Final),MySQL 5.1.40 MySQL_HOME=/usr/local/mysql/,Sysbench 0.4.12安装步骤1.去/projects/sysbench/下载最新版本的sysbench 0.4.122.解压缩sysbench-0.4.12.tar.gztar --zxvf sysbench-0.4.12.tar.gz3.进入解压缩包sysbench-0.4.12,并执行脚本autogen.shcd sysbench-0.4.12./autogen.sh4.关键的三部曲:configure&make&make install首先是./configure命令,sysbench默认是支持MySQL的benchmarking的,如果不加任何选项则要求保证MySQL的安装路径都是默认的标准路径,headfile位于/usr/include目录下,libraries 位于/usr/lib/目录下,因为我的MySQL是源码编译安装的,安装路径是放在/usr/local/mysql下,所以这里要添加相应的选项命令:./configure --prefix=/usr/local/mysql --with-mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include/mysql/--with-mysql-libs=/usr/local/mysql/lib/mysql/注意:经反复测试这里在编译时要将路径写到最后的include/mysql,lib/mysql--with-mysql-includes=/usr/local/mysql/include/mysql/--with-mysql-libs=/usr/local/mysql/lib/mysql/因为网上好多资料都没有提到这一层,在编译时总是编译不过去,这里浪费了好多精力. makemake install安装就可以了,下面再来看测试.sysbench数据库的测试案例:第一步:准备数据库,准备在mysql数据库创建1000000数据量,存储引擎是innodb.bin/sysbench --test=oltp \ --测试类型数据库oltp--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名--mysql-socket=/var/mysql.sock \ --socket位置--oltp-table-name=test \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎--oltp-table-size=1000000 prepare --表数据量第二步:开始测试.bin/sysbench --test=oltp \--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名--mysql-socket=/var/mysql.sock \ --socket位置--oltp-table-name=test \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎--max-requests=100000 \ --测试请求次数--max-time=600 \ --测试最长时间--num-threads=100 run --并发线程数//测试结果:sysbench 0.4.12: multi-threaded system evaluation benchmarkNo DB drivers specified, using mysqlRunning the test with following options:Number of threads: 100Doing OLTP test.Running mixed OLTP testUsing Special ibution (12 iterations, 1 pct of values are returned in 75 pct cases)Using "BEGIN" for starting transactionsUsing auto_inc on the id columnMaximum number of requests for OLTP test is limited to 100000Threads started!Done.OLTP test statistics:queries performed:read: 1401582write: 500563other: 200225total: 2102370transactions: 100112 (3446.37 per sec.)deadlocks: 1 (0.03 per sec.)read/write requests: 1902145 (65481.66 per sec.)other operations: 200225 (6892.78 per sec.)Test execution summary:total time: 29.0485stotal number of events: 100112total time taken by event execution: 2898.7554per-request statistics:min: 3.52msavg: 28.96msmax: 187.11msapprox. 95 percentile: 46.05msThreads fairness:events (avg/stddev): 1001.1200/10.80execution time (avg/stddev): 28.9876/0.03第三步:清理测试数据.bin/sysbench --test=oltp \--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名--mysql-socket=/var/mysql.sock \ --socket位置--oltp-table-name=test \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎cleanup在版本0.5中支持自定义语句,可以参考下面的链接./questions/39221/stress-test-mysql-with-queries-captured-with-general-log-in-mysql3.测试案例,表属性compress对insert速度的影响.第一步准备:创建表结构:bin/sysbench --test=oltp \ --测试类型数据库oltp--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名--mysql-socket=/var/mysql.sock \ --socket位置--oltp-table-name=sbtest \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎--oltp-table-size=1 prepare --表数据量将表名修改为uncompressedrename table sbtest to uncompressed;再次创建表sbtest,并将表名修改为compressedrename table sbtest to compressed;将表改为compressedalter table compressed ROW_FORMAT=compressed;第二步:向表uncompressed表中添加记录bin/sysbench --test=oltp \--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名ket=/var/mysql.sock \ --socket位置--oltp-table-name=uncompressed \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎--oltp-nontrx-mode=insert \--oltp-test-mode=nontrx \--max-requests=1000000 \--max-time=600 \--num-threads=100 run--测试结果:OLTP test statistics:queries performed:read: 0write: 1001110other: 0total: 1001110transactions: 1001110 (13617.75 per sec.) deadlocks: 0 (0.00 per sec.)read/write requests: 1001110 (13617.75 per sec.) other operations: 0 (0.00 per sec.)Test execution summary:total time: 73.5151stotal number of events: 1001110total time taken by event execution: 7346.0036per-request statistics:min: 0.10msavg: 7.34msmax: 239.05msapprox. 95 percentile: 22.00msThreads fairness:events (avg/stddev): 10011.1000/86.80execution time (avg/stddev): 73.4600/0.00说明:总共消耗了73s,每秒达到13617个事务.第三步:向表compressed表中添加记录:bin/sysbench --test=oltp \--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名--mysql-socket=/var/mysql.sock \ --socket位置--oltp-table-name=compressed \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎--oltp-nontrx-mode=insert \--oltp-test-mode=nontrx \--max-requests=1000000 \--max-time=600 \--num-threads=100 run--测试结果:OLTP test statistics:queries performed:read: 0write: 1000515other: 0total: 1000515transactions: 1000515 (2313.85 per sec.)deadlocks: 0 (0.00 per sec.)read/write requests: 1000515 (2313.85 per sec.)other operations: 0 (0.00 per sec.)Test execution summary:total time: 432.4036stotal number of events: 1000515total time taken by event execution: 43229.6698per-request statistics:min: 0.10msavg: 43.21msmax: 730.32msapprox. 95 percentile: 133.46msThreads fairness:events (avg/stddev): 10005.1500/109.30execution time (avg/stddev): 432.2967/0.01说明:总共消耗了432s,每秒处理2313事务数,和uncompressed的速度相差6倍.4.测试案例,表属性compress对复合操作速度的影响.第一步:准备数据,和第3项一样准备.第二步:针对compressed表进行复合操作测试.bin/sysbench --test=oltp \--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名--mysql-socket=/var/mysql.sock \ --socket位置--oltp-table-name=compressed \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎--max-requests=1000000 \--max-time=600 \--num-threads=100 runOLTP test statistics:queries performed:read: 14012236write: 5004356other: 2001743total: 21018335transactions: 1000869 (3145.37 per sec.) deadlocks: 5 (0.02 per sec.)read/write requests: 19016592 (59762.20 per sec.) other operations: 2001743 (6290.75 per sec.) Test execution summary:total time: 318.2043stotal number of events: 1000869total time taken by event execution: 31800.5571per-request statistics:min: 3.19msavg: 31.77msmax: 344.54msapprox. 95 percentile: 53.37msThreads fairness:events (avg/stddev): 10008.6900/32.50execution time (avg/stddev): 318.0056/0.01说明:共消耗时间318s,每秒3145个事务.第三步:针对uncompressed表进行复合操作测试.bin/sysbench --test=oltp \--mysql-host=127.0.0.1 \ --mysql主机--mysql-port=3421 \ --mysql端口--mysql-user=root \ --mysql登陆用户--mysql-password=$password \ --mysql密码--mysql-db=test \ --mysql测试数据库名--mysql-socket=/var/mysql.sock \ --socket位置--oltp-table-name=uncompressed \ --mysql测试表名--mysql-table-engine=innodb \ --mysql表使用存储引擎--oltp-nontrx-mode=insert \--oltp-test-mode=nontrx \--max-requests=1000000 \--max-time=600 \--num-threads=100 runOLTP test statistics:queries performed:read: 14013370write: 5004769other: 2001908total: 21020047transactions: 1000953 (3389.22 per sec.) deadlocks: 2 (0.01 per sec.)read/write requests: 19018139 (64395.20 per sec.)other operations: 2001908 (6778.44 per sec.)Test execution summary:total time: 295.3347stotal number of events: 1000953total time taken by event execution: 29512.3204per-request statistics:min: 3.37msavg: 29.48msmax: 157.93msapprox. 95 percentile: 48.19msThreads fairness:events (avg/stddev): 10009.5300/30.59execution time (avg/stddev): 295.1232/0.02说明:共消耗时间295s,每秒3389个事务,在复合操作中,compressed的表会快一些.。

相关文档
最新文档