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
(1)磁盘大小在1T以下IOPS优化为固定值50000;1T以上按照UDisk固定的分配算法计算IOPS,最大IOPS为120万。
(2)磁盘小于600G吞吐量优化为400M;磁盘大于600G按照UDisk固定的分配算法计算。
注:UCloud新一代快杰云主机支持最大32T磁盘空间,这也就意味着UCloud MySQL的磁盘空间最大也支持到了32T。小伙伴们再也不用担心磁盘空间不够,频繁进行业务库迁移了~
二、UCloud NVMe机型压测准备
2.1 测试环境与工具说明
如上图,不难发现,如果想准确压测出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行记录)
4.2 中型数据量(150张表,80w行)
4.3 大型数据量(150张表,800w行)
4.4 性价比量化
作者:UStarGao
链接:https://www.starcto.com/stress-test/264.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-08-20PostgreSQL常用命令集合
- 2022-07-04DD命令压测、备份与还原磁盘一文详解
- 2022-08-04MySQL RPM包方式安装教程
- 2021-04-10MySQL数据库页损坏修复方案
- 2021-04-04Linux服务器配置Google二次验证登录