设为首页 加入收藏

TOP

用MySQL自带工具mysqlslap对数据库进行压力测试(一)
2017-02-28 08:15:30 】 浏览:384
Tags:MySQL 自带 工具 mysqlslap 数据库 进行 压力 测试

mysqlslap是mysql自带的工具,不需要单独安装:


参数:
-concurrency 代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10、50、100个并发。


--engines 代表要测试的引擎,可以有多个,用分隔符隔开。


--iterations 代表要运行这些测试多少次。


--auto-generate-sql 代表用系统自己生成的SQL脚本来测试。


--auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)


--number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。


--debug-info 代表要额外输出CPU以及内存的相关信息。


--number-int-cols :创建测试表的 int 型字段数量


--auto-generate-sql-add-autoincrement : 代表对生成的表自动添加auto_increment列,从5.1.18版本开始


--number-char-cols 创建测试表的 char 型字段数量。


--create-schema 测试的schema,MySQL中schema也就是database。


--query 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。


--only-print 如果只想打印看看SQL语句是什么,可以用这个选项。


1,简单用法


[root@linuxidc /home/aolens]# mysqlslap --user=root --password=password --auto-generate-sql
?
Benchmark
?
Average number of seconds to run all queries: 0.002 seconds
?
Minimum number of seconds to run all queries: 0.002 seconds
?
Maximum number of seconds to run all queries: 0.002 seconds
?
Number of clients running queries: 1
?
Average number of queries per client: 0


结果中各项含义:


Average number of ... 运行所有语句的平均秒数


Minimum number of ... 运行所有语句的最小秒数


Maximum number of ... 运行所有语句的最大秒数


Number of clients ... 客户端数量


Average number of queries per client 每个客户端运行查询的平均数


2,添加并发


[root@linuxidc /home/aolens]# mysqlslap --user=root --password=password --auto-generate-sql --concurrency=100 --number-of-queries=1000
Benchmark
Average number of seconds to run all queries: 0.316 seconds
Minimum number of seconds to run all queries: 0.316 seconds
Maximum number of seconds to run all queries: 0.316 seconds
Number of clients running queries: 100
Average number of queries per client: 10


3,使用自己测试库和测试语句


[root@linuxidc /home/aolens]# mysqlslap --user=root --password=password --concurrency=10 --number-of-queries=100 --create-schema=wordpress --query="SELECT * FROM wordpress.wp_posts;"
Benchmark
Average number of seconds to run all queries: 4.255 seconds
Minimum number of seconds to run all queries: 4.255 seconds
Maximum number of seconds to run all queries: 4.255 seconds
Number of clients running queries: 10
Average number of queries per client: 10


4,结合实际,对网站首页所请求的数据库连接做压力测试
数据库Mariadb 10.0.14


首先给数据库安装审计插件,并启用


MariaDB [(none)]> show variables like '%audit%'
-> ;
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| server_audit_events | |
| server_audit_excl_users | |
| server_audit_file_path | server_audit.log |
| server_audit_file_rotate_now | OFF |
| server_audit_file_rotate_size | 1000000 |
| server_audit_file_rotations | 9 |
| server_audit_incl_users | |
| server_audit_logging | OFF |
| server_audit_mode | 0 |
| server_audit_output_type | file |
| server_audit_syslog_facility | LOG_USER |
| server_audit_syslog_ident | mysql-server_auditing |
| server_audit_syslog_info | |
| server_audit_syslog_priority | LOG_INFO |
+-------------------------------+-----------------------+
14 rows in set (0.00 sec)


发现已经安装了,没有安装的MariaDB [(none)]> INSTALL PLUGIN server_audit SONAME 'server_audit.so';


命令行启动审计功能:


命令行启用audit ,重启后失效


MariaDB [(none)]> set global server_audit_file_rotate_size=1024*1024*1024;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> set global server_audit_events='query,table';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> set global server_audit_file_rotate_

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL之MariaDB启用审计插件 下一篇Oracle手工建库出现ORA-01519错误

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目