暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
mysql压测方法.txt
260
10页
13次
2024-10-17
5墨值下载
--------------------------------------------------------------------------------
----------------------------------------------------------------
Description :mysql 压力测试方法
Author :如人饮水冷暖自知
Remark :
https://my.oschina.net/moooofly/blog/152547
http://www.techug.com/post/mysql-mysqlslap.html
http://jixiuf.github.io/blog/mysql%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95/
http://blog.chinaunix.net/uid-25723371-id-3498970.html
http://nsimple.top/archives/mysql-sysbench-tool.html
https://dearhwj.gitbooks.io/itbook/content/test/performance_test_qps_tps.html
https://www.hi-linux.com/posts/38534.html
--------------------------------------------------------------------------------
----------------------------------------------------------------
1.mysqlslap 工具
工具的官网说明:https://dev.mysql.com/doc/refman/5.5/en/mysqlslap.html
可能会遇到的报错:
报:mysqlslap: Error when connecting to server: Can't connect to local MySQL
server through socket '/tmp/mysql.sock' (2)
可以这样解决:ln -s /usr/program/mysql/data/mysql.sock /tmp/mysql.sock,主要是我的
sock 文件位置是自己的配置的,跟 mysqlslap 默认去读的地方不一样。
进行基准测试:
先做软链接:ln -s /usr/program/mysql/bin/mysqlslap /usr/bin
自动生成简单测试数据并测试:mysqlslap --defaults-file=/etc/my.cnf -a --auto-
generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement
--engine=innodb
--concurrency=50,100 --number-of-queries=1000 --iterations=2 --debug-info -uroot
-p123456
注意:该语句表示测试并发为 50 100 的情况,进行 1000 次访问(该值一般这样预估出来:并发客户数×
客户查询次数)。这样的测试方法迭代 2 次,最终显示最大、最小、平均值
其中:-a,表示自动生成要测试的数据,等同于:--auto-generate-sql
其中:--debug-info,代表要额外输出 CPU 以及内存的相关信息。
自动生成复杂测试数据并测试:mysqlslap --defaults-file=/etc/my.cnf
--concurrency=50,100,200 --iterations=2 --number-int-cols=7 --number-char-
cols=13
--auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-
load-type=mixed --engine=innodb --number-of-queries=1000
--debug-info -S /tmp/mysql.sock -uroot -p123456
-number-int-cols=7 表示生成的表中必须有 7 int 类型的列
-number-char-cols=13 表示生成的表中必须有 13 char 类型的列
实际场景请求数较大的时候测试:mysqlslap --defaults-file=/etc/my.cnf
--concurrency=50,100,200,500,1000 --iterations=10 --number-int-cols=7
--number-char-cols=13 --auto-generate-sql --auto-generate-sql-add-autoincrement
--auto-generate-sql-load-type=mixed --engine=innodb --number-of-queries=10000
--debug-info -S /tmp/mysql.sock -uroot -p123456
测试结果含义解释:
Average number of XXXXXXXX:运行所有语句的平均秒数
Minimum number of XXXXXXXX:运行所有语句的最小秒数
Maximum number of XXXXXXXX:运行所有语句的最大秒数
Number of clients XXXXXXXX:客户端数量
Average number of queries per client XXXXXXXX:每个客户端运行查询的平均数。其中这个数和
上面的数相乘就等于 number-of-queries
对自己的数据库进行测试:
数据库:youmeek_nav
简单测试语句:mysqlslap --defaults-file=/etc/my.cnf --create-schema=youmeek_nav
--query="SELECT * FROM nav_url;" --debug-info -uroot -p123456
复杂测试语句:假设我把有 3 sql 要测试,我把这三条写入到一个 test.sql 文件中,3 sql 用分号隔
开,文件内容为:SELECT * FROM sys_user;SELECT * FROM nav_column;SELECT * FROM
nav_url;
那测试语句可以这样写:mysqlslap --defaults-file=/etc/my.cnf --create-
schema=youmeek_nav --query="/opt/test.sql" --delimiter=";" --debug-info -uroot
-p123456
--delimiter=”;” 表示文件中不同 sql 的分隔符是什么
其他一些参数:
mysqlslap --help 查看所有参数
--auto-generate-sql-load-type=XXXXXX 代表要测试的是读还是写还是两者混合,该值分别有:
read,write,update,mixed,默认是 mixed
--auto-generate-sql-add-autoincrement 代表对生成的表自动添加 auto_increment
--debug-info 代表要额外输出 CPU 以及内存的相关信息。
--only-print 打印压力测试的时候 mysqlslap 到底做了什么事,
--------------------------------------------------------------------------------
----------------------------------------------------------------
sysbench 工具
工具的官网说明:https://launchpad.net/sysbench
开源地址:https://github.com/akopytov/sysbench
安装
当前(201703)最新版本为:1.0.3,下面的操作也都是基于此版本,网络上的资料很多都是 0.4 0.5
不支持本文的语法。
安装编译相关工具包:yum -y install automake libtool
下载:https://github.com/akopytov/sysbench/releases
假设我这边下载下来的文件名为:sysbench-1.0.3.zip
我的 MySQL 安装路径为:/usr/program/mysql
include 目录位置:/usr/program/mysql/include
libs 目录位置:/usr/program/mysql/lib
设置 MySQL 包路径变量:export LD_LIBRARY_PATH=/usr/program/mysql/lib/
解压压缩包:unzip sysbench-1.0.3.zip
开始编译安装:
cd sysbench-1.0.3
./autogen.sh
./configure --with-mysql-includes=/usr/program/mysql/include --with-mysql-
libs=/usr/program/mysql/lib/
make
make install
测试是否安装成功:sysbench --version
安装完之后在这个目录下有一些 lua 测试脚本:cd /usr/local/share/sysbench,等下测试的时候需
要指定这些脚本位置,用这些脚本测试的。
默认这些脚本生成的数据都是 10000 个,如果你想要更多,需要修改:vim
/usr/local/share/sysbench/oltp_common.lua 文件。常修改的参数:
tables,生成多少张表
table_size,每张表多少记录数
开始测试
做不同的类型测试之前,最好都重启下 MySQL
创建一个数据库,名字为:sbtest
select 测试:
of 10
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜