wrk性能测试实践-Mybatis支持MySQL服务

本文介绍了使用wrk测试MyBatis支持的MySQL服务的性能,探讨了MyBatis简介、测试需求、测试环境及wrk脚本自动化。测试重点包括加密与非加密场景的数据插入、主键查询和字段索引查询性能。通过lua脚本和参数调试,确定了线程数、连接数和吞吐量的最佳组合,以实现最优的QPS和延迟时间。
摘要由CSDN通过智能技术生成

MyBatis简介:

MyBatis 是一款优秀的Java持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的XML或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。特别适合分布式和大数据网络数据库的编程。

测试需求:

针对MyBatis插件支持MySQL数据库字段加解密功能,使用http性能基准测试工具wrk,对MyBatis考虑加密与不加密两种对比场景下,数据库数据插入功能的性能;验证数据通过主键查询功能的性能;验证数据通过字段索引进行查询的性能。

测试环境架构:

在这里插入图片描述

wrk测试脚本自动化

使用wrk进行http性能测试,难点主要在以下两个方面:

  1. lua脚本的编写,尤其是需要构造复杂的请求或者嵌套格式的参数;

  2. 确定wrk命令的最优参数,包括线程数、连接数和吞吐量。

    在测试过程中,参数的设定对测试结果的好坏有直接的影响,一般情况下,是通过多次调试的方法确定参数的合理区间,而要在3个参数之间找到最佳的平衡,所需要的工作量较大,甚至会出现当一个参数的最优并不是其他参数的最优,这就需要测试人员反复尝试,对测试人员的耐性是个很大的考验。
    本文作者依据多次的测试场景,总结出一套参数调试经验,开发一个常用的参数调试自动化脚本,可以帮助测试者快速定位最佳的wrk参数,以获取到最优的性能指标:QPS、延时时间

1 参数设定的原则
  • 线程数:-t ,一般是依据cpu核数来设定,最大值不要超过2倍cpu核数。
  • 连接数:-c, 可以理解为并发数,连接数需要在测试过程中多次调试,找到QPS达到最大临界点时的最大并发量;由于服务都有自身的负载极限,也会出现连接数越大QPS越低的情况,这种情况是因为连接数设置的过高,导致待测系统超出自身能承受的负载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值