前言
Awesome基础设施使用UCloud的基础服务,我们的数据库有相当比例是UCloud的RDS(有的使用云RDS,有的使用自己的物理服务器自建数据库)。
最近我们了解到,UCloud推出了一款基于快洁云主机的UDB实例,因为他们对CPU、OS内核、磁盘、网络结构都做了很大的改进和增强,对数据库性能也有很大的提升。
为此,本文对UDB快洁和基于快洁自建的实例进行了性能测试对比,为我们今后的实例选择提供技术参考。
去UCloud Express UDB(NVMe模式的高可用性MySQL云数据库) gt; gt;
快洁是什么?
其实快洁是UCloud的快洁云主机,不是单独的物理服务器。基于物理机做了一层分布式存储系统,利用CPU网络等硬件技术优化了OS内核。它具有以下特点:
计算、存储和网络性能卓越的旗舰云主机。AMD第二代EPYC CPU(主频2.9 GHz)或Intel Cascade Lake CPU(主频2.5 GHz)最大网络性能1000W PPS,最大存储性能120W IOPS。规格灵活,最高96核768G超大规格。它在大多数场景下都有很好的表现,比如Web服务、游戏服务、数据库、数据分析处理等。,性价比极佳。
从UCloud官网来看,一个重要的特点就是磁盘空间可以扩展到32T,这对于我们来说是一个很有吸引力的特点。在数据库运维的过程中,经常会遇到空间不足的情况,所以不得不将实例迁移调整到其他机器上,成本很高。
本文测试的是基于Intel CPU的fast-Jie模型。(和一些硬件朋友聊了聊,AMD指令集运行MySQL可能和Intel指令集不一样。)
2.环境准备
UCloud的数据库版本MySQL 5.7.25。
RDS实例选择使用默认的my.cnf模板。核心参数配置如下:
| binlog_format | ROW |
| innodb_adaptive_flushing | ON |
| innodb _ adaptive _ hash _ index | ON |
| innodb _ buffer _ pool _ instances | 8 |
| innodb _ buffer _ pool _ size | 8589934592 |
| innodb_file_per_table | ON |
| innodb _ flush _ log _ at _ Trx _ commit | 2 |
| innodb_flush_method | O_DIRECT |
| innodb_io_capacity | 15000 |
| innodb_lock_wait_timeout | 50 |
| innodb _ log _ buffer _ size | 8388608 |
| innodb _ log _ file _ size | 1073741824 |
| innodb_log_files_in_group | 2 |
| innodb _ max _ dirty _ pages _ pct | 50.000000 |
| innodb_open_files | 1024 |
| innodb_read_io_threads | 8 |
| innodb_write_io_threads | 8 |
| innodb_stats_on_metadata | OFF |
| innodb_thread_concurrency | 20 |
| max _ binlog _ cache _ size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
|最大连接错误| 1000000 |
|最大连接数| 2000 |
|最大用户连接数| 0 |
| open_files_limit | 1000000 |
| sync_binlog | 1 |
|表定义缓存| 464 |
|表打开缓存| 128 |
|线程缓存大小| 50 |
参数是UCloud默认的,没有特别优化。
之前的压测文章中,并没有写压测机的配置和网络延迟。这一次,又加上了。
测量机配置
千兆带宽
中央处理器
从测量机到UDB的网络延迟约为0.10.22毫秒
从测量机到自建Uhost网络的时延约为0.20.3ms,其RT大于自建udb在0.00.1 ms之间,RT会影响测试结果。
测试工具sysbench版本0.5。
测试场景
100个表,每个表有10w行数据,总共1kw的数据,数据库内存设置为32G。
测试脚本如下所示:
#!/bin/bash
线程=”12
24
36
48
60
七十二个
84
96
108″
dt=`date +”%Y%m%d%H%M%S ”
mkdir -p /root/yace_$dt
/root/do DBA-MySQL-log amp;
对于$threads中的I;做
回显$i
time=`date +”%Y%m%d%H%M%S ”
/opt/yz-sys bench/bin/sys bench-test =/opt/yz-sys bench/share/sys bench/OLTP . Lua-OLTP-tables-count = 100-OLTP-table-size = 100000-MySQL-db = sys bench-MySQL-user = sys bench-MySQL-password = sys bench-MySQL-host = xx . xx . xx . xx-MySQL-port = 330max-time = 500-max-requests = 0/root/yace _ $ dt/thread _ $ I _ $ time . log
睡眠60
完成的
p=`pidof doDBA ‘
杀死-9 $p
三个测试结果
记忆压力测试结果对比
从测试结果来看,基于快洁的qps UDB比基于快洁的自建数据库性能提高了20%以上。
其实我测试的是IO类型的压力测试结果,由于压力测试时间短、云盘性能抖动等因素,可能会有较大波动。另外我会咨询UCloud的技术人员,我购买的机器固件会升级。这次升级后,我可以再做一次IO型测试。
两者价格比较
UDB数据库费
UHost自建机器成本
打造一个高可用的UDB和两个快捷Uhost的直接价格是基于快捷自建的5602元/月,基于快捷的UDB 5160元/月更实惠。
从性价比来看,如果没有自建运维平台,基于UHost的自建数据库需要额外的运维系统(备份、监控、告警、HA等。),而这些的开发运营和部署也需要人力成本。一般来说,使用基于快洁的UDB更划算。
四总结
近年来,云RDS性能的快速发展与底层cpu、磁盘、网络等技术的快速发展密不可分。UCloud UDB的性能可以满足大部分业务运营的性能和容量需求(大量坏sql除外)。
从测试结果来看,基于快洁的数据库性能有比较高的提升,性价比还不错。UDB客户基于快洁选择UDB是一个不错的选择。
去UCloud Express UDB(NVMe模式的高可用性MySQL云数据库) gt; gt;
享受云^_^带来的乐趣
来源:yangyidba
评论前必须登录!
注册