前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网易MySQL微专业学习笔记(十二)-MySQL容量评估

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

作者头像
WindCoder
发布2018-09-19 17:47:25
1.5K0
发布2018-09-19 17:47:25
举报
文章被收录于专栏:WindCoder

前言

这个系列属于个人学习网易云课堂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根据规范实现

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 正文
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档