189 8069 5689

用mysql自带工具mysqlslap对数据库进行压力测试-创新互联

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

成都创新互联公司一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以网站制作、成都网站制作、移动互联产品、成都全网营销推广服务为核心业务。10余年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。

参数:

-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@Linux_Aolens_01 /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@Linux_Aolens_01 /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@Linux_Aolens_01 /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_now=on; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> set global server_audit_logging='ON'; Query OK, 0 rows affected (0.00 sec)


刷新一下首页查看审计日志里都有哪些SQL操作,对这些SQL进行压测:

mysqlslap --user=root --password=password --concurrency=20 --number-of-queries=1000 --create-schema=wordpress --query=" \ SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'; \ SELECT option_value FROM wp_options WHERE option_name = 'a3_lz_google_api_key' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'a3_lz_google_api_key_enable' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = '_transient_timeout_a3_lz_google_api_key_status' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = '_transient_a3_lz_google_api_key_status' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'wordpress_api_key' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'onp_license_clipboard-p_w_picpaths' LIMIT 1; \ SELECT autoload FROM wp_options WHERE option_name = 'onp_license_clipboard-p_w_picpaths'; \ SELECT option_value FROM wp_options WHERE option_name = 'onp_version_check_clipboard-p_w_picpaths' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'ossdl_https' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'uninstall_plugins' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'a3_lazy_load_just_installed' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'akismet_comment_nonce' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'preload_cache_counter' LIMIT 1; \ SELECT option_value FROM wp_options WHERE option_name = 'rewrite_rules' LIMIT 1; \ ......" Benchmark Average number of seconds to run all queries: 40.931 seconds Minimum number of seconds to run all queries: 40.931 seconds Maximum number of seconds to run all queries: 40.931 seconds Number of clients running queries: 20 Average number of queries per client: 50

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:用mysql自带工具mysqlslap对数据库进行压力测试-创新互联
本文网址:http://cdxtjz.cn/article/gcspe.html

其他资讯