性能容量关键指标:

每秒tps,峰值tps

基础数据量,日均增长数据量

最大连接数

内存分配

IOPS

重点关注指标:

业务指标:

每秒并发用户请求、每秒订单数、用户请求响应时长

折算成性能指标:

qps、tps、rt

提出测试预期目标:

根据性能指标制定测试方案

测试结果尽可能以这些指标来表达

业务预期指标解读

读写比例:读多写少、读少写多、读写相当、统计为主、纯写入为主

存盘模式(数据可靠性要求):实时、异步、不关注

用户端的语言、字符编码(latin1、utf8、utf8mb4)

数据恢复实时性要求

日新增数据量

数据库连接方式

历史数据归档方式

业务平均、峰值指标

业务目标评估要点

服务器配置

存储引擎选择

数据库高可用方案

数据可用性方案

数据库备份方案

相应优化方案:

CPU,更换更好、更多核心的CPU

I/O,更换IOPS性能更高的设备,例如SSD,PCIE SSD

内存,增加内存,合理分配

MySQL,升级版本

选择InnoDB引擎,并且设计合适的表结构,避免锁竞争

建立性能基线

某个运行时刻的状态记录、快照

中位线 or 均线

用于和未来的状态进行对比

未来时刻产生关键事件后的新状态,作为下一个基线

https://github.com/zhishutech/mysqldba/tree/master/mysql-snapshot

系统性能指标:

CPU、内存、I/O

MySQL性能指标:

tps、qps、DMLs、响应时长、内存利用率、锁等待

业务指标

每秒业务量、每次交易时长

采集工具:

top、free、vmstat、sar、iostat、dstat、nmon、oradba.pl等

CPU:%user、%idle、%sys、%iowait

%user (<10%)、%idle (>80%)、%sys (<5%)、%iowait (<10%)

IO:tps/iops、await、svctm、%util

tps/iops (越大越好)、await (<5~10)、svctm (<5)、%util (<50%)

内存:free (free、buffers、cached)、used,以及swap

used非常高,但cached非常低,要引起关注了,可能发生内存泄漏

MySQL

tps越大越好、rt越小越好、lock越少越好、hit ratio越高越好、waits越少越好

table_locks_wait,innodb_log_waits,innodb_buffer_pool_wait_free大于0说明负载很大

压力测试

基准压力测试目的:

采购新设备,评估新设备性能

开发新项目,评估数据库容量

新系统上线前,预估/模拟数据库负载

更换数据库版本,评估性能变化

设计测试模型要点:

明确测试的核心目标、诉求

排除干扰,专注测试目的

确定测试环境

确定测试过程中的衡量和变量

保证测试结果的可重复性

设计压测模型注意事项:

只在本地加压

压测数据量小

压测时间过短

压测模式太少

压力负载过大或过小

每轮测试完毕要净化环境

MySQL数据预热:

5.6以前,执行一次mysqldump,或全量select

5.6以后,buffer bool dump & restore

常用压测工具介绍:

tpcc-mysql、sysbench、fio

测试方法,结果解读:

MySQL压力测试基准值

测试结果模板

测试报告编写

压测client、server分开

压测数据量、时长、并发量过大过小都不合适

压测结果除了TPS/TPmC,也要关注性能数据

利用压测发现性能瓶颈因素

系统性能瓶颈大概率发生在磁盘I/O层

相应的优化措施,大多数靠加索引

最新文章

  1. 基本shell命令使用笔记
  2. Android中Services之异步IntentService
  3. Spring MVC 前后端 Json 方式交互和处理
  4. 关于 微软必应词典客户端(pc) 的案例分析
  5. HDU 4901 The Romantic Hero
  6. 【sublime】在终端下手动安装sublime text 2
  7. c# 清空txt文本文件的值
  8. codeforces #240 div 2
  9. 1 . Robberies (hdu 2955)
  10. JAVA Hibernate工作原理及为什么要用(转)
  11. Linux下的文件查找类命令(转载)
  12. ThinkPHP中的Model模型
  13. 苹果IOS与谷歌 android系统的UI设计原则
  14. C++回顾day03---&lt;string字符串操作&gt;
  15. html的分类与特点
  16. Solaris 11 配置IP地址
  17. 软件测试:1.Describe An Error
  18. 16-使用Selenium模拟浏览器抓取淘宝商品美食信息
  19. ES6字符串操作
  20. php 下载完成后删除文件

热门文章

  1. NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤&lt;转&gt;
  2. 脸型分类-Face shape classification using Inception v3
  3. 如何使能hyper-v的增强功能?
  4. PHP过狗webshell编写过程
  5. php报错syntax error, unexpected T_GOTO, expecting T_STRING,报错文件与行数指向以下代码,是什么原因?
  6. 5-1 嵌套while循环应用
  7. Docker容器(四)——常用命令
  8. CentOS7下使用Sentinel实现Redis集群高可用
  9. build doris 0.11.5 on centos 7/ubuntu
  10. Django models中的meta选项