阅读《高性能mysql第三版》笔记(二)

阅读《高性能mysql第三版》笔记(二)

前言:全文笔记都是阅读书籍记录的,请各位大佬多多指教,有不对的地方指点一番。谢谢!

(1)基准测试

基准测试(benchmark)是MySQL新手和专家都需要掌握的一项基本技能。验证基于系统的一些假设,确认是否符合实际情况。重现系统中的某一些异常行为,已解决这些异常。

(2)基准测试的策略

2.1 基准测试有两种主要策略:

(1)针对整个系统的整体测试;(集成式)
(2)单独测试MySQL;(单组件式)

2.2 针对整个系统做集成式测试,有一下原因:

  • 用户关注的不仅仅是MySQL的性能,而是整个应用,应该测试整个应用系统;
  • MySQL并非总是应用瓶颈,通过整体测试可以揭示;
  • 只有对应用做整体测试,才能发现各部分之间的缓存带来的影响;
  • 整体应用的集成式测试更能揭示应用的真实表现,而单独组件的测试很难做到这一点。

2.3 基准测试方法
测试结果无用或者不准确:
在这里插入图片描述
其中使用默认的服务器配置,有吸引力还有测试时间太短;
2.4 基准测试工具

  • 集成式测试工具:
    (1)ab:是一个Apache HTTP服务器基准测试工具;
    (2)http_load:可以随机选择测试多个URL,比ab更灵活;
    (3)JMeter:JMeter是一个应用程序,可以加载其他应用并测试其性能。效果较好。

  • 单组件式测试工具:
    (1)mysqlslap:可以模拟服务器的负载,并输出即时信息。它包含在MySQL 5.1的发行包。可以测试并发连接数。
    (2)MySQL Benchmark Suit(sql-bench):在MySQL的发行包中也提供了一款自己的基准测试套件,可以用于不同数据库服务器进行比较测试。好处:包含大量预定义的测试。
    (3)Super Smack,是一款用于MySQL和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。
    (4)Database Test Suite:是开源软件开发实验室涉及到。
    (5)Percona’s TPCC-MySQL Tool,作者开源的,源码地址:https://launchpad.net/perconatools下载
    (6)sysbench:是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。可以测试I/O,操作系统调度器,内存分配,传输速度。sysbench的github学习地址
    benchmark()函数内置测试如图:
    在这里插入图片描述
    benchmark函数测试发现:小数据量查询不大,但是大数据是差距就明显;书本上解释为:小数据量是,缓存命中几率;
    2.5 测试例子
    (1)http_load
    创建 urls.txt文件,在里面输入URL,敲命令 : http_load -parallel 1 -seconds 10 urls.txt
    (2)MySQL基准测试套件
    ①sql-bench:在MySQL安装目录的sql-bench子目录有工具,默认路径是/usr/share/mysql/sql-bench
    (3)sysbench测试
    ①CPU基准测试:查看cpu型号,cat /proc/cpuinfo;使用 sysbench --test=cpu --cpu-max-prime=20000 run计算出素数的时间,比较计算时间长短。
    ②I/O基准测试:先准备测试文件sysbench --test=fileio --file-total-size=150G prepare,测试文件的大小必须要大于内存的大小,防止操作系统缓存大部分的数据,导致测试结果无法体现IO密集型的工作负载。然后运行针对不同IO类型进行测试:seqwr
    顺序写入。seqrewr顺序重写。seqrd顺序读取。rndrd随机读取。rndwr随机写入。rdnrw混合随机读/写。下图例子运行"随机读/写":
    在这里插入图片描述
    最后清除测试数据,sysbench --test=fileio--file-total-size=150G cleanup
    ③OLPT基准测试:OLPT模拟一个简单事务的负载。先生成一张一百万的表,sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test/ --mysql-user=root prepare。然后测试,sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root/ --max-time=60 --oltp-read-only=on --max-requests=0 --nun-threads=8 run, 开启8个并发线程,只读模式,测试时长60秒。关注下面这些指标:

     *  总的事务数
     *	每秒事务数。
      * 时间统计信息(最小、平均、最大响应时间,以及95%百分比响应时间)。
      * 线程公平性统计信息(thread-fairness),用于表示模拟负载的公平性。
    

2.6 学习sysbench测试
sysbench对CPU的测试

参考文章:[https://www.jianshu.com/p/d0abdc29cd7a](https://www.jianshu.com/p/d0abdc29cd7a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值