《打造扛得住的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=5
- PREFIX=/home/imooc/benchmarks/$INTERVAL-sec-status
- RUNFILE=/home/imooc/benchmarks/running
- echo "" > $RUNFILE
- MYSQL=/usr/local/mysql/bin/mysql
- $MYSQL -e "show global variables" >> mysql-variables
- while test -e $RUNFILE; do
- file=$(date +%F_%I)
- sleep=$(date +%s.%N | awk '{print 5 - ($1 % 5)}')
- sleep $sleep
- ts="$(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 $ts
- done
- 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
- }
- ' "$@"
基准测试中容易忽略的问题
- 在单服务器上测试分布式应用,推荐:使用相同架构进行测试。
3-4 Mysql基准测试工具之mysqlslap
MySQL服务器自带的基准测试工具,随MySQL一起安装。
特点:可以模拟服务器负载,并输出相关统计信息。
可以指定也可以自动生成查询语句。
常用参数说明
3-5 Mysql基准测试工具之sysbench
安装说明
./autogen.sh
./configure --with-mysql-includes=/usr/local/mysql/include/--with-mysql-libs=/usr/local/mysql/lib/
make && make install
常用参数
3-6 sysbench基准测试演示实例
create database imooc;
grant all privileges on *.* to sbest@'localhost' identified by '123456';
exit
cd tests/db
ls
ls -1 *lua
show processlist
《打造扛得住的MySQL数据库架构》第3章 MySQL基准测试的更多相关文章
- MySQL中 如何查询表名中包含某字段的表 ,查询MySql数据库架构信息:数据库,表,表字段
--查询tablename 数据库中 以"_copy" 结尾的表 select table_name from information_schema.tables where ta ...
- mysql数据库架构设计与优化
mysql数据库架构设计与优化 2019-04-23 20:51:20 无畏D尘埃 阅读数 179 收藏 更多 分类专栏: MySQL 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA ...
- MYSQL数据库自动本地/异地双备份/MYSQL增量备份
构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...
- mysql数据库优化课程---18、mysql服务器优化
mysql数据库优化课程---18.mysql服务器优化 一.总结 一句话总结: 1.四种字符集问题:字符集都设置为utf-82.slow log慢查询日志问题3.root密码丢失 1.mysql存在 ...
- mysql数据库优化课程---17、mysql索引优化
mysql数据库优化课程---17.mysql索引优化 一.总结 一句话总结:一些字段可能会使索引失效,比如like,or等 1.check表监测的使用场景是什么? 视图 视图建立在两个表上, 删除了 ...
- mysql数据库优化课程---16、mysql慢查询和优化表空间
mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...
- mysql数据库优化课程---15、mysql优化步骤
mysql数据库优化课程---15.mysql优化步骤 一.总结 一句话总结:索引优化最立竿见影 1.mysql中最常用最立竿见影的优化是什么? 索引优化 索引优化,不然有多少行要扫描多少次,1亿行大 ...
- mysql数据库优化课程---13、mysql基础操作
mysql数据库优化课程---13.mysql基础操作 一.总结 一句话总结:mysql复制表,索引,视图 1.mysql如何复制表? like select * 1.复制表结构 create tab ...
- 重新学习MySQL数据库1:无废话MySQL入门
重新学习Mysql数据库1:无废话MySQL入门 开始使用 我下面所有的SQL语句是基于MySQL 5.6+运行. MySQL 为关系型数据库(Relational Database Manageme ...
- mysql数据库优化课程---12、mysql嵌套和链接查询
mysql数据库优化课程---12.mysql嵌套和链接查询 一.总结 一句话总结:查询user表中存在的所有班级的信息? in distinct mysql> select * from cl ...
随机推荐
- H5端js实现图片放大查看-插件photoswipe的使用
这个是一个不知道什么鬼的东西,按照他需求改的,我也不知道对不对...看介绍说是h5把,我这个是用那个插件photoswipe的实现的 demo包地址: https://files-cdn.cnblog ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-inbox
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- ACM-吴奶奶买鱼
题目描述:吴奶奶买鱼 吴奶奶有个可爱的外孙女——琪琪,她很喜欢小动物,尤其喜欢养鱼.为了让小孙女养到漂亮的小鱼,吴奶奶一大早就到花鸟鱼虫市场买鱼.这个市场可真大,里面有各种各样的宠物,就连宠物鱼都 ...
- 不能安装64位office提示已安装32位如何处理
不能安装64位office提示已安装32位如何处理? 1 2 3 4 5 6 当你遇到提示说[无法安装64位版本的office,以为在您的PC上找一下32位程序......]时如果你还想安装64位 ...
- 球队“食物链”(DFS+剪枝)
某国的足球联赛中有N支参赛球队,编号从1至N.联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场. 联赛战罢,结果已经尘埃落定.此时,联赛主席突发奇想,希望从中找出一条包含所有球队的“食物链 ...
- POJ 2155 二维线段树 经典的记录所有修改再统一遍历 单点查询
本来是想找一个二维线段树涉及懒惰标记的,一看这个题,区间修改,单点查询,以为是懒惰标记,敲到一半发现这二维线段树就不适合懒惰标记,你更新了某段的某列,但其实其他段的相应列也要打标记,但因为区间不一样, ...
- 第一篇web框架
第一篇web框架 http协议 web应用和web框架 主 文 http协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维 ...
- 第十二篇视图层之视图函数(views)-三件套
视图层之视图函数(views) 阅读目录(Content) 视图层之视图函数(views) 一个简单的视图 HttpRequest HttpResponse redirect 函数 对比render与 ...
- Day 20:网络编程(1)
什么是计算机网络? 指的是分布在不同地域的计算机,通过外部设备连接起来,实现资源共享与数据传输的计算机系统. 通信三要素: IP: IP地址 Internet上的每台主机(Host)都有一个唯一的IP ...
- 每天一点点之vue框架开发 - vue中使用vue-router切换页面时自动滚动到顶部的方法
1. 在main.js入口文件中写入 //路由跳转后,页面回到顶部 router.afterEach(() => { document.body.scrollTop = 0; document. ...