标签:std ota ash fas latch ebe article string google
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
标签:std ota ash fas latch ebe article string google
原文地址:https://www.cnblogs.com/silyvin/p/12771091.html