• 1
  • 2
  • 3
  • 4
  • 5
mysql数据库问题 首 页  »  帮助中心  »  数据库  »  mysql数据库问题
关于RDS for MySQL的各规格性能测试情况
发布日期:2015-11-13 15:11:18

  关于RDS for MySQL的各规格性能测试情况

  注:该性能报告是参考的测试数据,不作为产品SLA的评判标准。

  一. 简介

  通过该性能测试报告,让用户了解到在sysbench标准测试模型下,每种规格的RDS的性能表现,供用户做容量选型参考。

  二. 名词解释

  1. QPS: 表示每秒执行的SQL语句的次数包括select,insert,delete等。

        2. 规格:RDS为用户提供的不同性能的套餐,以内存大小为衡量标准,比如240M内存的RDS实例。

  3. 行数:测试模型下,该实例所拥有的所有表格的总行数。

        4. 工作集数据:测试的数据量大小,并且在测试中这些数据都会频繁被使用。

  5. 并发数:测试线程的数量

  6. 表数量:该测试模型下表的总数,每表行数=行数/表数

     7. semi-sync(Semisynchronous Replication,半同步): 跟async一样,是MySQL复制中传输日志的另外一种模式,叫半同步复制,在RDS (MySQL5.5)中引入并支持。在这种模式下数据的安全性得到了最大保障,但会损失一定的写入性能。

  8. async(Asynchronous Replication,异步):MySQL复制中传输日志的一种模式,MySQL默认支持的就是这种模式,最为通用,在不影响主库性能的前提下尽可能地保证数据的安全。

  三. 测试模型

  测试工具:sysbench 0.5

  测试流程:通过对每种规格的实例进行压测,得出每种规格的RDS实例的性能表现

  测试模型:采用OLTP模型(读写比例为7:3)和InnoDB引擎。大致命令如下:

  常用命令参数如下:

  

  四. 每种RDS for MySQL规格的资源配额,如下图所示:


  五. 每种规格的测试数据,如下图所示:


  注: 24000M规格由于数据库性能容量非常高,一个sysbench客户无法压满RDS实例,因此我们采用了两个sysbench客户端来同时进行压测,并且两个sysbench对不同的数据库和表格进行压测。

  六. QPS测试结果,如下图所示:


  具体每种规格的RDS for MySQL的QPS性能曲线如下图:


  七. MySQL 5.5半同步与异步性能对比

  从理论上分析MySQL 5.5的半同步的写性能会比异步的写性能差不少。但是从上面的测试结果来看相差并不大.原因是上面的测试模型是读写比例为7:3,写入不大的情况下,半同步的影响较小。 为此我们将进行纯insert压测来比较半同步和异步的性能。

  测试模型与上面7:3的读写测试模型类似,只是把oltp.lua脚本换成insert.lua脚本。也就是把“--test=/tmp/sysbench-0.5/sysbench/tests/db/oltp.lua“参数换成“—test=/tmp/sysbench-0.5/sysbench/tests/db/insert.lua”。

  下面这张图是纯insert压测,半同步和异步的性能曲线,从中可以看出:

  1) 使用异步模式,随着规格的增加,性能越来越好,每秒插入的记录数跟实例的IOPS密切相关。

        2) 使用半同步模式,每秒插入的记录数变化不大,稳定在5300条左右。主要是因为半同步的数据同步出现瓶颈。