网易MySQL微专业学习笔记(十二)-MySQL容量评估

前言

这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL业务优化与设计”中的MySQL数据类型相关笔记。

所有笔记可能不定期更新,发布时不一定为最终版。

正文

性能容量评估

     分析线上业务场景

     评估数据库服务器所需性能指标

     预估可能成为瓶颈的服务器资源

     帮助数据库性能调优

数据库服务器硬件性能指标

磁盘IO性能

内存容量

CPU

网络吞吐量

磁盘容量

数据库业务特点关键词

OLTP/OLAP类型

并发请求

读写比例

数据量

冷热数据比

数据分级存储

OLTP与OLAP

T = Transaction

面向广大用户,高并发,较短事务操作

互联网应用绝大部分属于OLTP

OLTP看重服务器CPU,内存,些事务较多或内存不够则依赖磁盘IO

A =Analytical

通常面向内部人员,大规模复杂查询

OLAP看重磁盘扫描的IO能力,部分依赖内存排序。

并发请求-衡量线上业务繁忙程度

业务高峰时数据库的每秒并发访问量是多少

通过应用服务器数量,连接池配置判断

通过产品估算初上线用户规模和用户增长速度

通过实际业务业务类型判断

并发量相关资源:CPU

读写比例-描述应用程序如何使用数据库

线上业务select只读与update/delete/insert写操作比例

delete/update通常都是先读再写

insert需要分区数据写入是持续insert还是大量导入数据

根据业务实际场景分析

多数场景相关资源:内存

多写场景相关资源:磁盘IO

数据量-总量

数据库服务器存储设备可扩容能力上限

根据估算的业务量,写入模式,分析数据增长量

预估一个硬件升级周期内数据库可存放数据的总量,上线时要留好余量

数据总量相关资源:磁盘容量

冷数据与热数据-有用数据的实时集合

热数据,线上最新一定周期内将被反复访问的数据

冷数据,线上保存着的,最近不会被在线用户用到的数据

估算活跃用户量,数据增长量等预估热数据量

内存大小尽可足够存放线上实时热数据。

热数据相关资源:内存

MySQL性能测试

为什么需要做性能测试

对线上产品缺乏心里预估

重现线上异常

规划未来的业务增长

测试不同硬件软件配置

性能测试的分类

设备层的测试

业务层的测试

数据库层的测试

设备层的测试

关注那些性能

服务器、磁盘性能

磁盘坏块率

服务器寿命

业务层的测试

真的业务进行测试

数据库层的测试

什么情况下要做MySQL的测试

测试不同的MySQL分支版本

测试不同的MySQL版本

测试不同的Mysql参数搭配

MySQL测试分类

CPU Bound

    全内存的测试,测试的数据远小于配置的内存;这样就可以不用因为磁盘IO的性能不同,而影响测试结果。

IO Bound

     测试的数据量远大于内存,这就有大量的数据从磁盘IO读取写入;

     远大于内存

     每个均包含:

写入测试

更新测试

纯读测试

混合模式

     以上三种都有。

常用的测试工具

开源的MySQL性能测试工具

sysbench

tpcc-mysql

mysqlslap

性能测试衡量指标

服务吞吐量(TPS,QPS)

TPS:每秒钟执行的事务量

QPS:每秒钟执行的请求量

若一个事务中包含10个请求,每秒钟可执行10个事务

则,TPS为10,QPS为10*10=100

服务响应时间

服务并发性

Sysbench

     业界较为出名的性能测试工具

     可以测试磁盘、CPU、数据库

     支持多种数据库:Oracle、DB2、MySQL

     需要自己下载编译安装

     建议版本Sysbench0.5

编译Sysbench

1)下载sysbench

git clone https://github.com/akopytov/sysbench.git

2)编译&安装

./autogen.sh

./configure --prefix=/home/ddb/tmp/sysbench

make && make install

3)./sysbench --help

4)初始化数据

sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 prepare

5)运行测试

sysbench --test=oltp.lua --oltp_tables_count=1 --num-threads=100 --oltp-table-size=500000000 --oltp-read-only=off --report-interval=10 --rand-type=uniform --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-time=1000 --max-requests=0 run

6)数据清理

sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 cleanup

Sysbench流程

初始化数据-》运行测试-》清理数据

Prepare语法--初始化数据

sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 prepare

--oltp-table-size 多少行记录

Run语法-运行测试

sysbench --test=oltp.lua --oltp_tables_count=1 --num-threads=100 --oltp-table-size=500000000 --oltp-read-only=off --report-interval=10 --rand-type=uniform --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-time=1000 --max-requests=0 run

cleanup

1、手动drop掉表和datebase

2、使用syschench提供的cleanup命令

sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 cleanup

Tpcc-mysql

TPC-C是专门针对练级交易处理系统(OLTP系统)的规范

Tpcc-mysql由percona根据规范实现

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

看我如何综合利用3个安全问题成功劫持Flickr账户获得7千美元漏洞赏金

Flickr( flickr.com)为雅虎Yahoo旗下图片和视频分享平台,提供免费及付费数位照片视频储存、分享和线上社交应用服务。本文中作者通过身份认证参数...

2017
来自专栏MessageQueue

业务方对消息中间件的需求

在大型互联网中,主要采用消息中间件来进行业务的解耦和操作的异步化,这也是消息中间件最基础的特点,也是业务系统对消息中间件的最基本需求。

1642
来自专栏python学习指南

Python_TCP/IP简介

本篇将开始介绍Python的网络编程,更多内容请参考:Python学习指南 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了。 计算...

3608
来自专栏美团技术团队

【沙龙干货】RDS平台介绍

今天我就给大家讲一下我们这边做的数据库运维的自动化平台,他是怎么样子的。首先我会给大家简单介绍一下我们做平台的背景,以及平台的一些技术架构,以及针对我们DBA和...

5244
来自专栏博客园迁移

分布式事务的CAP理论 与BASE理论

  一个经典的分布式系统理论。CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区...

911
来自专栏跨界架构师

做了「负载均衡」就可以随便加机器了吗?这三招来帮你!

        这篇是《分布式关注点系列》中「负载均衡」相关的内容最后一发了,后续也会继续讲「高可用」相关的其它主题,主要是限流、降级、熔断之类的吧,具体还没定...

1325
来自专栏python学习之旅

loadrunner笔记(一):下载、安装loadrunner和负载压力测试概念说明

1905
来自专栏嵌入式程序猿

嵌入式工程师必须涨的姿势:云端访问

随着物联网,大数据,云端等热门技术的发展和带动越来越多的嵌入式开发产品需要加入新的功能,对嵌入式开发工程师的要求也越来越高,不懂点都不好意思混下去O(∩_∩...

38612
来自专栏向治洪

andrpid优化之删除无用资源

如果你是一个经常开发android应用程序或者做android维护项目的人,我想说你对我谈论的这个话题,一定会感兴趣的。 因为只有做到了这两点,你的项目生成的a...

2107
来自专栏AI星球

"一言蔽之系列"--简说SQL与NoSQL那些事

文章结构: 1、关系型数据库:ACID理论 2、非关型系数据库:分布式存储理论、CAP理论、BASE理论、优缺点、常用NoSQL数据库 3、Python链...

1113

扫码关注云+社区

领取腾讯云代金券