测试数据准备:

  数据库:flashT

  36张表:

  Test1- test36:

  表结构:

  CREATE TABLE `test1` (
  `doc_id` int(10) unsigned NOT NULL default ’0′,
  `main_status` tinyint(3) unsigned NOT NULL default ’0′,
  `sub_status` tinyint(3) unsigned NOT NULL default ’0′,
  `create_time` int(10) unsigned NOT NULL default ’0′,
  cid1` smallint(5) unsigned NOT NULL default ’0′,
  ……………
  PRIMARY KEY (`doc_id`)
  );

  数据量:

  每个表达到5000W 行(大概30G)

  36个表

  说明:具体的测试库表结构、类型

  每张表的测试数据量等都需要根据具体测试目的和测试场景进行设计。

  四、测试步骤

  测试一: 不同集群配置,不同实例的性能对比测试

  一: 数据构造,同时验证各硬件集群基本读、写性能。

  1)4个实例全部开启insert 5000W;初步对比写性能。

  用36个slap并发实例分别往36张表insert,往每个表插入5000W 行数据。

  2)4个实例全部开启,每张表20个select并发select。初步对比读性能。

  用36个slap并发实例子每个实例20个并发select请求分别从36张表中取数据。

  二:对比不同集群执行常用SQL命令的性能情况

  制定数据库系统常用的SQL语句,数据库执行这些SQL语句的性能。用slap并发用户数从10,50,100,200。

  三:对比不同集群处理耗时SQL命令的性能情况

  制定数据库系统耗时的SQL语句,数据库执行这些SQL语句的性能。用slap并发用户数从10,50,100,200。

  四:模拟事务处理,对比各集群性能情况。

  模拟事物,,用slap并发用户数10,50,100,200,500,800,1000分析不同集群分别在多少并发用户数下,TPS值大。

  五:分析各集群在线事物处理能力。

  模拟事务处理,根据步骤四得到的大TPS,设置TPS的一定比率作为每秒事务数,用jemeter测试,并发,10,50,100,200,500,800,1000.分析各个并发各种集群下的响应时间分布和其他各项性能指标。分析TPS情况好的并发数。

  测试二:网卡瓶颈测试

  步骤一:分析测试一中的各项测试结果的CPU、磁盘、网卡等负载情况。

  如果其他几项比网卡提前到达瓶颈。则说明网卡不会成为瓶颈。相反进入步骤二。此外,如果测试一中的各项测试磁盘,网卡,CPU等均未达到瓶颈。则将测试一中的步骤四,增大并发压力,直到出现负载瓶颈。

  步骤二:调整测试。

  测试三:硬件是否衰减情况。

  步骤:用jmeter 持续测试24小时。

  用测试一中的步骤五得到的好TPS的并发数作为此次测试的并发数,用Jmeter并发测试24小时,分析第一个小时和后一个小时的TPS,和响应时间分布。

  (注意每一次测试命令中,涉及查询条件的值随机分布)

  五、总结:

  关于数据库性能测试,只要掌握了压力测试工具。关键的还是设计出符合业务的测试模型,以及测试完成后的测试分析。通过实践抽象出测试模型,进行自动化,则测试过程可以事半功倍。