CloudMysql测试情况

yygame有自己的CloudMysql服务,可以通过API和命令行工具一键创建Mysql实例组。每个实例组由位于不同物理机的2个实例组成,它们之间是master to master的复制关系。由keepalive管理的VIP对外提供服务,如果一端挂掉,VIP自动切换到另一端,提供了高可用保障。

测试情况:同时在2个实例各写入500万数据(先写100万,后写400万),由于是双向复制关系,因此共产生了1000万数据。Mysql实例是1GB内存的InnoDB引擎,存储介质是SSD。

表结构定义如下:

CREATE TABLE `ttt` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

写入的SQL如下:

insert into ttt (content) values ('$string')

$string是固定长度64字节的串。

完成后两台机的写入耗时情况(各400万数据),第一台为:

$ time perl inst.pl 4000000

real 17m43.803s
user 4m49.706s
sys 2m3.396s

第二台为:

$ time perl inst.pl 4000000

real 19m18.197s
user 4m49.801s
sys 2m1.554s

对如上执行,我们取总时间37分钟,总数据量800万,计算出CloudMysql集群每秒写入的TPS为:3600个。

执行过程中观察到的物理机对应的磁盘IOPS如下:

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdb 0.00 25431.00 0.00 1181.00 0.00 212888.00 180.26 0.81 0.69 0.14 16.40

每秒写入1000次左右,每秒写入数据100MB左右。数据库访问是随机读写。

测试过程中Mysql运行正常,数据复制正常,全部写入成功。

mysqlinst

此条目发表在Common分类目录,贴了, 标签。将固定链接加入收藏夹。

CloudMysql测试情况》有2条回应

  1. cyrus说:

    CloudMysql支持分表吗?

    测试运行时间,用Time::HiRes模块会更灵活一点

    • 风河说:

      没有做协议级proxy.所以不支持分表 :p
      YY的RDS支持.

评论已关闭。