您当前的位置:首页 > 电脑百科 > 数据库 > 百科

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

时间:2020-09-03 11:03:55  来源:  作者:

一 前言

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

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

压测机器配置

万兆带宽

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

 

CPU

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

 

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

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

 

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

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

 

测试工具 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

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

 

 

insert/delete

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

 

 

update

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

 

 

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

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

两者的价格对比

UDB数据库费用

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

 

UHost自建机器费用

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

 

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

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

四 小结

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

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

-The End-



Tags:云数据库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一 前言有赞的基础架构使用了UCloud的基础服务,我们有相当比例的数据库是UCloud的RDS(一部分使用云RDS,一部分使用购买他们的物理服务器自建数据库)。近期我们了解到 UCloud...【详细内容】
2020-09-03  Tags: 云数据库  点击:(68)  评论:(0)  加入收藏
[TechWeb编译]研究人员在互联网上开放了一个配置不正确的数据库,以了解谁会连接到这个数据库,以及他们会窃取什么。Comparitech研究人员报告说,配置错误的数据库在上线数小时后...【详细内容】
2020-06-17  Tags: 云数据库  点击:(87)  评论:(0)  加入收藏
在数据库领域,阿里云公开了2020年的一个核心KPI。“今年将帮1000家企业'去O',完成10000套传统数据仓库上云。”6月9日,阿里云数据库负责人李飞飞在2020阿里云峰会上表...【详细内容】
2020-06-10  Tags: 云数据库  点击:(29)  评论:(0)  加入收藏
摘要: 如同Oracle存在与之匹配的OCFS2,POLARDB作为存储与计算分离结构的一款数据库,PolarFS承担着发挥POLARDB特性至关重要的角色。PolarFS是一款具有超低延迟和高可用能力的分...【详细内容】
2020-05-17  Tags: 云数据库  点击:(59)  评论:(0)  加入收藏
阿里云的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版的相关信息。基础版也称为单机版,只有单个数据库节点,计算与存储分离,性价比超高。说明由于基础版...【详细内容】
2020-03-18  Tags: 云数据库  点击:(89)  评论:(0)  加入收藏
▌简易百科推荐
1增1.1【插入单行】insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values (&#39;开心朋朋&#39;,&#39;男&#39;,&#39;1980/6/15&#3...【详细内容】
2021-12-27  快乐火车9d3    Tags:SQL   点击:(1)  评论:(0)  加入收藏
最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫, 不知道各种写法孰优孰劣,该选用哪种写法,以及各种写法的优缺点,本文以一个简单的查询...【详细内容】
2021-12-23  linux上的码农    Tags:sql   点击:(9)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  GitHub精选    Tags:HasorDB   点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22    51CTO  Tags:Liquibase   点击:(3)  评论:(0)  加入收藏
场景描述:由于生产环境的表比较复杂,字段很多。这里我们做下简化,只为说明今天要聊的问题。有两张表 tab1,tab2: tab1 数据如下: tab2 数据如下: 然后给你看下,我用来统计 name=&#3...【详细内容】
2021-12-20  Bald    Tags:SQL   点击:(5)  评论:(0)  加入收藏
前言知识无底,学海无涯,知识点虽然简单,但是比较多,所以将MySQL的基础写出来,方便自己以后查找,还有就是分享给大家。一、SQL简述1.SQL的概述Structure Query Language(结构化查...【详细内容】
2021-12-16  谣言止于独立思考    Tags:SQL基础   点击:(13)  评论:(0)  加入收藏
前言作为一名测试工程师,工作中在对测试结果进行数据比对的时候,或多或少要和数据库打交道的,要和数据库打交道,那么一些常用的 SQL 查询语法必须要掌握。最近有部分做测试小伙...【详细内容】
2021-12-14  柠檬班软件测试    Tags:SQL   点击:(15)  评论:(0)  加入收藏
话说C是面向内存的编程语言。数据要能存得进去,取得出来,且要考虑效率。不管是顺序存储还是链式存储,其寻址方式总是很重要。顺序存储是连续存储。同质结构的数组通过其索引表...【详细内容】
2021-12-08  小智雅汇    Tags:数据存储   点击:(17)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  雪竹聊运维    Tags:数据库   点击:(26)  评论:(0)  加入收藏
一、前言 大家好,我是小诚,《从0到1-全面深刻理解MySQL系列》已经来到第四章,这一章节的主要从一条SQL执行的开始,由浅入深的解析SQL语句由客户端到服务器的完整执行流程,最...【详细内容】
2021-11-09  woaker    Tags:SQL   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条