• MySQL容量规划和性能测试


    性能容量关键指标:

        每秒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层

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

  • 相关阅读:
    2.2 图像分类-线性分类
    2.1 图像分类-K最近邻算法
    2 图像分类-数据驱动方法
    Week6
    R-CNN 原理详解
    1.2 课程介绍-课程后勤
    012_04Thread+Handler实例应用之号码归属地查询
    010_04用户登录(用户名,密码交给服务器并验证)
    010_03HTML源码查看器
    010_02带缓存的图片查看器
  • 原文地址:https://www.cnblogs.com/allenhu320/p/11365103.html
Copyright © 2020-2023  润新知