栏目头部广告

UCloud NVMe机型MySQL数据库性能压测-sysbench

一、UCloud NVMe机型MySQL介绍

UCloud NVMe机型是基于UCloud快杰云主机部署的,这也意味着其拥有快杰云主机的一切特性。那么我们先来看看UCloud官方对快杰云主机性能的定义:快杰云主机是“新一代”的云主机,它全面搭载:Intel V6 CPU(Cascade Lake),覆盖25G基础网络和智能网卡,采用RDMA-SSD云盘,网络性能最高可达1000万PPS,存储性能最高可达120万IOPS。主要应用场景:(1)高网络性能:最高1000万PPS的数据包收发性能,适用于在强联网游戏,高实时性的社交IM,DSP广告等行业。(2)高读写性能最高120W IOPS的产品读写性能,非常适合搭建数据库,大数据分析等IO密集型业务。

NVMe机型云主机(又名:快杰云主机)第三方压测数据:UCloud云主机性能测评

NVMe机型数据库(又名:快杰数据库)第三方压测数据:UCloud快杰UDB与自建数据库性能对比测试

1.1 CPU内存配比

UCloud MySQL默认控制台无法选择CPU大小,在创建过程中,会根据CPU内存配比计算出实际的CPU核数!!!官方文档显示单个数据库实例默认核数(C)与内存(G)比为1:4,核数向上取整。

1.2 磁盘大小和IOPS

image.png

(1)磁盘大小在1T以下IOPS优化为固定值50000;1T以上按照UDisk固定的分配算法计算IOPS,最大IOPS为120万。

(2)磁盘小于600G吞吐量优化为400M;磁盘大于600G按照UDisk固定的分配算法计算。

注:UCloud新一代快杰云主机支持最大32T磁盘空间,这也就意味着UCloud MySQL的磁盘空间最大也支持到了32T。小伙伴们再也不用担心磁盘空间不够,频繁进行业务库迁移了~

二、UCloud NVMe机型压测准备

2.1 测试环境与工具说明

image.png

如上图,不难发现,如果想准确压测出MySQL实例的真实性能数据,必须先排除其它干扰因素,比如:sysbench压测主机的配置(CPU大小、内存大小)、性能(CPU性能、网卡吞吐性能等)以及sysbench压测主机与UCloud MySQL之间的网络传输距离等。为了解决这些问题,我们sysbench压测主机采用的CentOS6 4C8G的配置,并且为了减少网络传输距离的影响,我们sysbench压测主机必须与UCloud MySQL实例同可用区。

2.2 测试模型的选择

(1)内存型

特征:内存大,数据量小的场景测试
目的:内存速度、CPU速度

(2)IO型

特征:数据量较大大或极大,比如:磁盘占用量(排除日志):内存=10:1
测试目的:内存速度、CPU速度、磁盘IO能力

(3)我们的压测模型

小数据量(内存场景):250张表,25000行
中数据量(I0场景1):150张表,80w行
大数据量(l0场景2):150张表,800w行

三、开始进行UCloud NVMe机型压测

sysbench官网地址:https://github.com/akopytov/sysbench/releases

3.1 环境准备

(1)sysbench压测主机安装sysbench

[root@client ~]# yum install sysbench -y

(2)sysbench压测主机安装mysql客户端

[root@client ~]# yum install mysql -y
mysql> create database sysbench;      # 登录测试库创建sysbench库

文章推荐:MySQL YUM安装教程

3.2 压测数据准备

导数据到数据库中,做为原始数据:

/usr/bin/sysbench  /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-host=$host --mysql-user=$user --mysql-password=$password --mysql-db=sysbench --tables=$table_count --table-size=$row_size --report-interval=10 --threads=64 --time=3600 prepare

将上述变量替换为具体的值,其中:
(1)table-size为每张表的行数;
(2)table_count为表的数量;
(3)threads为多少个线程并发导数据,小内存的UDB可以设置小一点。
(4)time无所谓,我为了统一后面的测试脚本所以此处加了-time=3600。

3.3 开始数据压测

/usr/bin/sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-host=$host --mysql-user=$user --mysql-password=$password --mysql-db=sysbench --tables=$table_count --table-size=$row_size --report-interval=10 --threads=64 --time=3600 run

真正的测试阶段,需要关心如下参数:
(1)threads,代表给的并发压力,根据不同场景可以调整,如果不知道可以就选32或者64
(2)time,代表给的压测时长,一般如果要拿到较准确测试,需要>1800(单位秒)

四、压测性能展示

4.1 小型数据量(250张表,没张表25000行记录)

image.png

4.2 中型数据量(150张表,80w行)

image.png

4.3 大型数据量(150张表,800w行)

image.png

4.4 性价比量化

image.png

作者:UStarGao
链接:https://www.starcto.com/stress-test/264.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`