前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云数据库VS自建数据库,到底该如何抉择?

云数据库VS自建数据库,到底该如何抉择?

作者头像
老叶茶馆
发布2020-09-07 18:00:41
1.5K0
发布2020-09-07 18:00:41
举报

一 前言

有赞的基础架构使用了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默认的,未做特别的优化。

之前的压测文章里面,没有写压测机器的配置和网络时延,这次加上。

压测机器配置

万兆带宽

CPU

压测机器到UDB的网络时延 0.15-0.22ms 左右

压测机器到自建Uhost 网络时延0.22-0.3ms左右,它的RT 大于到自建udb的0.05-0.1ms之间 。RT会影响测试效果

测试工具 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
insert/delete
update

从测试结果上来看,qps基于快杰的UDB性能比基于快杰自建的数据库性能要好20%以上。

其实测试了 IO 类型的压测结果对⽐,可能由于压测时间比较短, 及云盘性能存在抖动等因素,测试数据结果波动较大,另咨询UCloud的技术⼈员,我购买的 机器将进行固件升级,这个升级后可以再做⼀次IO 类型的测试。

两者的价格对比

UDB数据库费用

UHost自建机器费用

创建高可用的UDB和两台快杰Uhost的直接价格,基于快杰自建5602 元/月,基于快杰的UDB 5160 元/月价格更实惠。

从性价比上来说如果没有自建的运维平台,基于UHost自建数据库需要额外的运维系统(备份,监控,报警,HA等),开发运维部署这些也需要人力成本,总而言使用基于快杰的UDB更划算。

四 小结

近年来 云RDS 性能的突飞猛进离不开底层cpu、磁盘、网络等方面技术的快速发展。UCloud快杰UDB的性能能够满足绝大多数业务运行的性能容量需求(大量 bad sql 除外)。

从测试结果上来看,基于快杰的数据库性能表现有比较高的涨幅,性价比还不错。对于UDB客户而言选择基于快杰的UDB是个不错的选择。

have fun with Cloud ^_^

-The End-


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老叶茶馆 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 前言
    • 什么是快杰?
    • 二 环境准备
      • 压测机器配置
        • 测试场景
        • 三 测试结果
          • QPS
            • insert/delete
              • update
                • 两者的价格对比
                • 四 小结
                相关产品与服务
                云数据库 SQL Server
                腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档