mysql第3章数据定义_《打造扛得住的MySQL数据库架构》第3章 MySQL基准测试

3-1 什么是基准测试

测量系统性能,优化是否有效?MySQL基准测试。

定义:基准测试是一种测量和评估软件性能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件

变化时重新进行基准测试以评估变化对性能的影响。

基准测试:直接、简单、易于比较,用于评估服务器的处理能力。

压力测试:对真实的业务数据进行测试,获得真实系统所能承受的压力。

基准测试可能不关心业务逻辑,所使用的查询和业务的真实性可以和业务环境没关系。

基准测试的目的:

1、建立MySQL服务器的性能基准线

2、模拟比当前系统更高的负载,以找出系统的拓展瓶颈

3、测试不同的硬件、软件和操作系统配置是否配置正确

3-2 如何进行基准测试

对整个系统进行基准测试,能够测试整个系统的性能,包括web服务器缓存、数据库等。

能反映出系统中各个组件接口间的性能问题体现真实性能状况。

单独对MySQL进行基准测试

测试设计简单,所需耗费时间短。

MySQL基准测试的常见指标:

单位时间内所处理的事务数(TPS)

单位时间内所处理的查询数(QPS)

响应时间:平均、最小、最大、各时间所占百分比

并发量:同时处理的查询请求的数量。正在工作中的并发的操作数或同时工作的数量。

3-3 基准测试演示实例

计划和设计基准测试

准备基准测试及数据收集脚本,CPU使用率、IO、网络流量、状态与计数器信息等

Get_Test_info.sh

#!/bin/bash

INTERVAL=5PREFIX=/home/imooc/benchmarks/$INTERVAL-sec-status

RUNFILE=/home/imooc/benchmarks/running

echo"1" > $RUNFILEMYSQL=/usr/local/mysql/bin/mysql$MYSQL -e "show global variables" >> mysql-variableswhile test -e $RUNFILE; dofile=$(date +%F_%I)

sleep=$(date +%s.%N | awk '{print 5 - ($1 % 5)}')

sleep$sleepts="$(date +"TS %s.%N %F %T")"loadavg="$(uptime)"echo"$ts $loadavg" >> $PREFIX-${file}-status$MYSQL -e "show global status" >> $PREFIX-${file}-status &echo"$ts $loadavg" >> $PREFIX-${file}-innodbstatus$MYSQL -e "show engine innodb status" >> $PREFIX-${file}-innodbstatus &echo"$ts $loadavg" >> $PREFIX-${file}-processlist$MYSQL -e "show full processlist\G" >> $PREFIX-${file}-processlist &echo$tsdone

echo Exiting because$RUNFILE does not exists

analyze.sh

#!/bin/bash

awk 'BEGIN{

printf"#ts date time load QPS";

fmt="%.2f";

}/^TS/{

ts= substr($2,1,index($2,".")-1);

load= NF -2;

diff= ts -prev_ts;

printf"\n%s %s %s %s",ts,$3,$4,substr($load,1,length($load)-1);

prev_ts=ts;

}/Queries/{

printf fmt,($2-Queries)/diff;

Queries=$2}

'"$@"

基准测试中容易忽略的问题

a2acb25276ff359070c36841e82c1b9b.png

0e800293ee70352e7a1e04e12e3ccffc.png

在单服务器上测试分布式应用,推荐:使用相同架构进行测试。

3cd4e5ba1368b407c99075043e3c6d3b.png

3-4 Mysql基准测试工具之mysqlslap

MySQL服务器自带的基准测试工具,随MySQL一起安装。

特点:可以模拟服务器负载,并输出相关统计信息。

可以指定也可以自动生成查询语句。

常用参数说明

7caadf75d628d67892c83cfa6209f43c.png

96534a6ba65de4bcc73d3697386107ec.png

76a28a9d25754f3a98e2e4799558b259.png

f1506f1553ff7050694551f7b83be9c2.png

3-5 Mysql基准测试工具之sysbench

安装说明

./autogen.sh

./configure --with-mysql-includes=/usr/local/mysql/include/--with-mysql-libs=/usr/local/mysql/lib/

make && make install

常用参数

fbb711cadaa81c41b61f62bad9d0bbfa.png

d0b51c4df6f67249dd751cf6d24c27b6.png

1be9b1f52b1ca5f377a215f67c1b95f8.png

4adcd138d6aa85b4c2f0c702820dba58.png

3-6 sysbench基准测试演示实例

dbabe3d24c824bd5cbb55d8ccfbc5cd2.png 

75e9d4ae2905b2455c55a5dcd7d4e523.png

create database imooc;

grant all privileges on *.* to sbest@'localhost' identified by '123456';

exit

3970a45660f3c6413e8abdde15c70ec2.png

cd tests/db

ls

ls -1 *lua

92d095fc18f3ad29d41005d59a46d9d3.png

show processlist

69fea52ab14af45cf416f0e8cba2b0bd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值