mysql基础测试
2018-06-17 22:50:08来源:未知 阅读 ()
- 模拟比当前系统更高的负载,找出性能瓶颈
- 重现线上异常
- 测试不同硬件软件配置
- 规划未来的业务增长
- 设备层的测试
- 业务层的测试
- 数据库层的测试
- 关注哪些指标
-
- 服务器,磁盘性能
- 磁盘坏块率
- 服务器寿命
- 针对业务进行测试
- 什么情况下要做Mysql的测试
-
- 测试不同的Mysql分之版本
- 测试不同的mysql版本
- 测试不同的mysql参数搭配
- CPU Bound --全内存的测试,测试的数据远小于配置的内存;这样就可以不用因为磁盘IO的性能不同,而影响测试结果。
- IO Bound-- 测试的数据量远大于内存,这就有大量的数据从磁盘IO读取写入;
- 写入测试
- 更新测试
- 纯度测试
- 混合模式(根据业务不同)
- 开源的mysql性能测试工具
-
- sysbench
- tpcc-mysql
- mysqlslap
- 针对业务编写性能测试工具
-
- blogbench--根据网易博客,的具体业务来做的测试工具
- 服务吞吐量
-
- TPS--每秒执行事务的总量
- QPS--每秒执行的请求总量
- 服务响应时间
- 服务并发性---正在工作中的并发操作,或者是同时工作中的线程数或者连接数。例如一个web站点"同时有50000个用户"访问,却可能只有10--15个并发请求到mysql数据库,此时并发数只有10--15。
- 可扩展性---------------简单来说,给系统增加一倍的资源(比如两倍的CPU数),就可以获得两倍的吞吐量。当然,同时性能(响应时间)也必须在可以接受的范围内。大多数系统是无法做到如此理想的线性扩展的。
- 使用真实数据的子集而不是全集。
- 与真实用户行为不匹配。
- 没有检查错误。-----------测试中遇到不是预期结果,就应该检查错误日志,这时基本要求。
- 忽略了系统预热的过程----系统重启后,缓存是没有数据的,这时测试与实际情况不符,实际很可能是 缓存中已经有很多数据。
- 测试时间太短
- 记录测试数据
- 系统配置的步骤
- 如何测试的步骤
- 分析结果
- 预热的方案
- cpu使用率
- 磁盘I/O
- 网络流量统计
- show global status 计数器等
- 业界较为出名的性能测试工具
- 可以测试磁盘,CPU,数据库
- 支持多种数据库:oracle,DB2,MYSQL
- 需要自己下载编译安装
- 建议版本:sysbench0.5
- sysbench 的cpu基准测试
- sysbench 的文件I/O基准测试
- sysbench 的OLTP基准测试
- 内存-----测试内存的连续读写性能
- 线程-----测试线程调度器的性能。
- 互斥锁---测试互斥锁性能。
- 顺序写---测试顺序写的性能。
- TPC-C是专门针对联机交易处理系统(OLTP系统)的规范
- Tpcc-mysql由percona根据规范实现
mysql> set @input := 'hello world'; Query OK, 0 rows affected (0.00 sec) mysql> select benchmark(1000000,MD5(@input)); +--------------------------------+ | benchmark(1000000,MD5(@input)) | +--------------------------------+ | 0 | +--------------------------------+ 1 row in set (1.45 sec) mysql> select benchmark(1000000,SHA1(@input)); +---------------------------------+ | benchmark(1000000,SHA1(@input)) | +---------------------------------+ | 0 | +---------------------------------+ 1 row in set (1.40 sec)
- 四小类:写入测试,更新测试,纯度测试,混合模式
- 性能测试衡量指标:
-
- 服务吞吐量
-
- TPS--每秒执行事务的总量
- QPS--每秒执行请求的总量
- 服务响应时间
- 服务并发性
- 设计测试常见错误:
-
- 使用数据子集而不是全集,
- 与真实用户行为不匹配,
- 没有检查错误,
- 忽略了系统预热过程,测试时间太短;
- 测试方法
-
- 测试规划:
-
- 记录测试数据,
- 系统配置步骤,
- 测试步骤,
- 分析结果,
- 预热方案;
- 测试时间:测试应该运行足够长的时间,至少等于系统预热的时间。
- 获取系统性能和状态:cpu,IO,网络流量,mysql状态计数器;
- 运行测试:自动化测试包含:数据装载,系统预热,执行测试,记录结果。
- 绘图分析:直观的发现问题;
- 测试工具:sysbench,tpcc-mysql,benchmark()
- 测试小结:
-
- IO Bound测试数据量要远大于内存,cpu Bound测试数据量要小于内存
- 测试时间建议大于60分钟,减小误差;有系统预热时间;
- Sysbench更倾向于测试Mysql性能,Tpcc更接近于业务
- 运行测试程序需要同时监控机器负载,Mysql各项监控指标
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash