一为什么需要基准测试

    唯一方便有效,可以学习系统在给定的工作负载下会发生什么的方法。可以观察系统在不同的压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统如何处理不同的数据

二基准测试的策略

    两种:针对整个系统的整体测试、单独测试MYSQL

三测试何种指标

    1.吞吐量

        在线业务事务处理(OLTP)吞吐量,测试单位每秒事务数(TPS),每分钟事务数(TPM)

    2.响应时间或者延迟

        根据不同的时间单位可以计算出平均响应时间,最小响时间,最大响应使劲和所占百分比

    3.并发性

       需要关注的是正在工作中的并发操作,或者同时工作中的线程数或连接数,当并发性增加时,需要测量吞吐量是否下降,响应使劲是否变长

    4.可扩展性

        给系统增加一倍的工作量,在理想条件下能获得两倍的结果。

 四基准测试时间

     让测试一直运行,持续观察直到确认系统已经稳定

五获取系统性能和状态

     CPU使用率、磁盘I/O、网络流量统计、SHOW GLOBAL STATUS计数器等

四基准测试工具

    集成式测试工具:

     ab apache HTTP服务器基准测试工具,只能测试单个URL

     http_load 和ab类似,可以通过一个输入文件提供多个URL

     JMeter 可以加载其他应用并测试其性能,功能多,较复杂

     单组件测试工具

         mysqlslqp 可以模拟服务器的负载,并输出计时信息。测试时,可以执行并发连接数,并指定SQL语句。

         mysql Benchmark suite(sql-bench)

         主要用于测试服务器执行查询的速度,单线程

         Super Smack

          用于Mysql和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。可以模拟多用户访问

         Database Test Suite

         Percona'sTPCC-MySQL Tool 类似TPC-C基准测试工具集

         sysbench

         多线程系统压测工具,可以根据影响数据库服务器性能的各种因素来评估系统的性能,可以测试文件I/0、操作心态调度器、内存分配和传输速度、POSIX线程,以及数据库服务器等。

          支持Mysql、操作系统和硬件测试。

五基准测试案例

    sysbench

    sysbench的CPU基准测试:

    sysbench --test=cput --cpu-max-prime=20000 run

    sysbench的文件I/O基准测试:

    先生成测试数据文件,大小大于内存大小

     sysbench --test=fileio --file-total-size=150G prepare

     sysbench --tst=fileio --file-total-size=150G --file-test-mode=rndrw/ --init-rng=on --max-time=300 --max-requests=0 run

      seqwr顺序写入    seqewr顺序重写    seqrd顺序读取    rndrd随机读取    rndwr随机写入  rndrw混合随机读/写

      删除测试文件

      sysbench --test=fileio --file-total-szie=150G cleanup