云数据库VS自建数据库,到底该如何抉择? 逃离我推掉我的手 2022-12-03 09:22 70阅读 0赞 ### 一 前言 ### 有赞的基础架构使用了UCloud的基础服务,我们有相当比例的数据库是UCloud的RDS(**一部分使用云RDS,一部分使用购买他们的物理服务器自建数据库**)。 近期我们了解到 UCloud 推出一款基于快杰主机的UDB实例,因为他们在整机架构上针对CPU,OS内核 ,磁盘,网络结构有比较大的改进和增强,数据库性能也有很大的性能提升。 所以本文写写针对快杰UDB和基于快杰自建实例的性能测试对比,为我们以后的实例选型做个技术参考。 #### 什么是快杰? #### 其实快杰就是云主机,不是单独的物理服务器,基于物理机做了一层分布式存储系统,利用CPU 网络等硬件技术,优化OS内核,它具有以下特性: 计算、存储与网络性能卓越的旗舰云主机。 支持AMD 第二代EPYC CPU(2.9GHz主频)或 Intel Cascadelake CPU(2.5GHz主频) 最大网络性能达到1000W PPS,最大存储性能达到120W IOPS。 规格灵活,最高支持96核768G的超大规格实例。 在Web服务,游戏服务,数据库,数据分析处理等绝大多数场景表现出色,性价比极佳。 > 从官网上来看一个比较重要的特性是磁盘空间可以拓展到32T ,这个算是比较吸引我们的一个特性,运维数据库的过程中经常遇到空间不足的情况,必须迁移实例,调整到其他机器上,成本比较高。 本文测试的是基于Intel CPU的快杰机型,(和一些硬件的朋友聊 AMD指令集对MySQL的运行可能和Intel指令集合的结果不一样。) ### 二 环境准备 ### 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 | | max_connect_errors | 1000000 | | max_connections | 2000 | | max_user_connections | 0 | | open_files_limit | 1000000 | | sync_binlog | 1 | | table_definition_cache | 464 | | table_open_cache | 128 | | thread_cache_size | 50 | 参数是UCloud默认的,未做特别的优化。 > 之前的压测文章里面,没有写压测机器的配置和网络时延,这次加上。 #### 压测机器配置 #### 万兆带宽 ![format_png][] CPU ![format_png 1][] 压测机器到UDB的网络时延 0.15-0.22ms 左右 ![format_png 2][] 压测机器到自建Uhost 网络时延0.22-0.3ms左右,它的RT 大于到自建udb的0.05-0.1ms之间 。**RT会影响测试效果** ![format_png 3][] 测试工具 sysbench 0.5 版本 。 #### 测试场景 #### > 100张表,每张表10w行数据,共1kw数据量,数据库内存设置为32G 压测脚本如下: #!/bin/bash threads="12 24 36 48 60 72 84 96 108" dt=`date +"%Y%m%d%H%M%S"` mkdir -p /root/yace_$dt /root/doDBA -mysql -log & for i in $threads; do echo $i time=`date +"%Y%m%d%H%M%S"` /opt/yz-sysbench/bin/sysbench --test=/opt/yz-sysbench/share/sysbench/oltp.lua --oltp-tables-count=100 --oltp-table-size=100000 --mysql-db=sysbench --mysql-user=sysbench --mysql-password=sysbench --mysql-host=xx.xx.xx.xx --mysql-port=3306 --max-time=500 --max-requests=0 --oltp-test-mode=complex --num-threads=$i run > /root/yace_$dt/thread_$i_$time.log sleep 60 done p=`pidof doDBA` kill -9 $p ### 三 测试结果 ### 内存模型压测结果对比: #### QPS #### ![format_png 4][] #### insert/delete #### ![format_png 5][] #### update #### ![format_png 6][] 从测试结果上来看,qps基于快杰的**UDB**性能比基于快杰**自建的数据库**性能要好20%以上。 > 其实测试了 IO 类型的压测结果对⽐,可能由于压测时间比较短, 及云盘性能存在抖动等因素,测试数据结果波动较大,另咨询UCloud的技术⼈员,我购买的 机器将进行固件升级,这个升级后可以再做⼀次IO 类型的测试。 #### 两者的价格对比 #### UDB数据库费用![format_png 7][] UHost自建机器费用 ![format_png 8][] 创建高可用的UDB和两台快杰Uhost的直接价格,基于快杰自建5602 元/月,基于快杰的UDB 5160 元/月价格更实惠。 从性价比上来说如果没有自建的运维平台,基于UHost自建数据库需要**额外的运维系统**(备份,监控,报警,HA等),开发运维部署这些也需要人力成本,总而言使用基于快杰的UDB更划算。 ### 四 小结 ### 近年来 云RDS 性能的突飞猛进离不开底层cpu、磁盘、网络等方面技术的快速发展。UCloud快杰UDB的性能能够满足绝大多数业务运行的性能容量需求(大量 bad sql 除外)。 从测试结果上来看,基于快杰的数据库性能表现有比较高的涨幅,性价比还不错。对于UDB客户而言选择基于快杰的UDB是个不错的选择。 have fun with Cloud ^\_^ \-The End- -------------------- 本公众号长期关注于数据库技术以及性能优化,故障案例分析,数据库运维技术知识分享,个人成长和自我管理等主题,欢迎扫码关注。 ![format_png 9][] 全文完。 Enjoy MySQL :) [format_png]: /images/20221123/6935f8bd316a4a77884ac00c800c2f37.png [format_png 1]: /images/20221123/b22579facb69420a9a3c39e65b381fcd.png [format_png 2]: /images/20221123/de33a60e14a14cb9929eb751fd2d6dda.png [format_png 3]: /images/20221123/6edbdc0cbccd4e33a190d25cc2f1d683.png [format_png 4]: /images/20221123/9396a1334b344c72900e55adfd0ce7b5.png [format_png 5]: /images/20221123/86e8f0b06f4f4679bd6c57fe87531e6d.png [format_png 6]: /images/20221123/349c30c51da342429569324cd31a4572.png [format_png 7]: /images/20221123/7c9eee62b39943d880526fd1c32769a4.png [format_png 8]: /images/20221123/6aa76502404f4d6395b0039b424e0596.png [format_png 9]: /images/20221123/e5bfa329c03b4e379632ac9519918556.png
还没有评论,来说两句吧...