首页 / MYSQL / mysql压力测试与qps监控
mysql压力测试与qps监控
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql压力测试与qps监控,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3293字,纯文字阅读大概需要5分钟。
内容图文
![mysql压力测试与qps监控](/upload/InfoBanner/zyjiaocheng/523/75a71987770e46ee8c4cbafe4617d7bb.jpg)
https://blog.csdn.net/csd753111111/article/details/100428512
脚本:
#cat mysql_qps.sh #!/bin/bash MYSQL_CON="/usr/local/mysql/bin/mysql" TIME="$1" OLD_QUERY=`$MYSQL_CON -e "show global status like ‘questions‘;" | awk -F[‘ ‘,‘s‘] ‘NR==2{print $3}‘` echo "$OLD_QUERY" sleep "$TIME" NEW_QUERY=`$MYSQL_CON -e "show global status like ‘questions‘;" | awk -F[‘ ‘,‘s‘] ‘NR==2{print $3}‘` echo "$NEW_QUERY" TIME_QUERY=`expr $NEW_QUERY - $OLD_QUERY` QPS=`expr $TIME_QUERY / $TIME` echo "$QPS"
0状态
show global status like ‘questions‘;
40927
测试代码:
package jdbctimezone; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.protobuf.InvalidProtocolBufferException; import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.runner.Runner; import org.openjdk.jmh.runner.options.Options; import org.openjdk.jmh.runner.options.OptionsBuilder; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import serial.MyBaseBean; import serial.MyBaseProto; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; /** * * Created by joyce on 2019/10/24. */ @BenchmarkMode(Mode.Throughput)//基准测试类型 @OutputTimeUnit(TimeUnit.SECONDS)//基准测试结果的时间类型 @Threads(10)//测试线程数量(IO密集) @State(Scope.Thread)//该状态为每个线程独享 public class YaliMysql { private static final String URL_NO_TIMEZONE="jdbc:mysql://127.0.0.1:53306/mytest?useUnicode=true&characterEncoding=utf-8&useSSL=false"; private static final String USER="root"; private static final String PASSWORD="memories"; private static ThreadLocal<Connection> connectionThreadLocal = new ThreadLocal<>(); public static void main(String[] args) throws Exception { if(true) { Options opt = new OptionsBuilder().include(YaliMysql.class.getSimpleName()).forks(1).warmupIterations(1) .measurementIterations(3).build(); new Runner(opt).run(); } } @Benchmark public static void testMysql() { Connection connection = connectionThreadLocal.get(); if(connection == null) { connection = getConnection(); connectionThreadLocal.set(connection); } try { PreparedStatement pstmt = connection.prepareStatement("select * from mytest where id = 1"); ResultSet rs = pstmt.executeQuery(); } catch (Exception e) { e.printStackTrace(); } } private static Connection getConnection() { Connection conn = null; try { conn = DriverManager.getConnection(URL_NO_TIMEZONE, USER, PASSWORD); return conn; } catch (Exception e) { e.printStackTrace(); } return null; } }
41秒:
# Warmup Iteration 1: 1308.201 ops/s
Iteration 1: 1657.662 ops/s
Iteration 2: 1439.036 ops/s
Iteration 3: 1732.052 ops/s
Result "jdbctimezone.YaliMysql.testMysql":
1609.583 ±(99.9%) 2778.689 ops/s [Average]
(min, avg, max) = (1439.036, 1609.583, 1732.052), stdev = 152.309
CI (99.9%): [≈ 0, 4388.272] (assumes normal distribution)
# Run complete. Total time: 00:00:41
101446-40927=60519
qps计算=60519/41=1476
mysql压力测试与qps监控
标签:std ota ash fas latch ebe article string google
本文系统来源:https://www.cnblogs.com/silyvin/p/12771091.html
内容总结
以上是互联网集市为您收集整理的mysql压力测试与qps监控全部内容,希望文章能够帮你解决mysql压力测试与qps监控所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。