博客
关于我
云计算之路:数据库服务器的选择——舍RDS取云服务器
阅读量:417 次
发布时间:2019-03-06

本文共 1415 字,大约阅读时间需要 4 分钟。

云计算之路系列博文分享的是我们将网站从IDC机房迁移至云计算平台(阿里云)的实际经历,目前处于准备阶段,这次分享的是我们选择数据库服务器面临的权衡与取舍。

在阿里云上,数据库服务器有两个选择:云服务器与RDS(关系型数据库服务)。这两者的主要区别是什么呢?

可以这样理解,选择云服务器就如同租用毛坯房,你得自己装修、自己置家具、自己打扫。而选择RDS则如同住五星级酒店。

云服务器是运行在集群上的虚拟机,阿里云采用的是Xen虚拟化技术。云服务器使用的是SATA硬盘,而主流的服务器通常使用SAS硬盘。SATA硬盘通过网络存储集群实现,每次写入数据时会同时保存三份,从而在性能上换取可靠性。阿里云客服提供的数据显示,云服务器的写速度一般为15MB/s,读速度为70MB/s,IOPS在500~700之间。硬盘写入速度是云服务器的硬伤,也是成本低的主要原因。

RDS(关系型数据库服务)则是跑在物理服务器上的数据库实例。以SQL Server为例,阿里云会在物理服务器上预装好SQL Server,并将其中一个SQL Server数据库实例出租,限定该实例所能使用的硬件资源。物理服务器配置强劲,硬盘性能远高于云服务器,维护也由阿里云的DBA负责。硬盘读写速度快、维护成本低是RDS的优势,但也带来了成本高和资源限制的问题。

最初我们并不知情,后来在尝试将"找找看"索引放在云服务器上建数据库时,发现云服务器的硬盘写入速度较慢。不久后,我们从阿里云客服那了解到RDS的相关信息,得知其硬件性能更优,于是对RDS进行了评估。

如果选择与现有数据库服务器差不多的硬件配置(8G内存、400G硬盘空间),成本为3870元/月,硬盘性能确实会比现有数据库服务器高,但存在以下限制:

  • 无法远程控制数据库服务器,只能通过SQL Server管理工具进行连接。
  • 一个数据库实例支持的数据库数量有限(约7个)。
  • SQL Server版本仅限2008版本。
  • 数据库最大连接数有限制(此配置为800)。
  • 这些限制虽然存在,但总体上RDS的选择还是有吸引力。于是我们决定使用RDS,接下来便需要考虑如何将数据迁移至RDS上。

    阿里云平台仅提供一种迁移方案:导出目标数据库的生成脚本(详见),适用于数据文件总大小在10G以内的场景。然而,我们的一个数据库数据文件却有70G之大。对此,阿里云客服建议仍然采用适用于10G以下数据文件的导出脚本。对于70G的数据库,导出脚本后再将其大文件导入到远程数据库,经验尚浅,这个过程让人略感头疼。

    这个经历让我们对RDS产生了一些不满,甚至一度给了阿里云客服一个差评。经历了这次"气愤事件"后,我们并未陷入困境,反而促使我们重新思考:是否必须使用RDS?

    进一步计算发现,购买RDS的费用远高于云服务器配置。例如,8G内存的RDS成本为3870元/月,而顶级配置的云服务器(8核CPU、32G内存)仅需2779元/月,相比之下节省约1000元/月。云服务器虽然硬盘性能稍逊一筹,但内存资源丰富,足以弥补性能差距。此外,云服务器还提供Memcached和NoSQL等级别缓存,可帮助减轻数据库压力。

    基于以上考虑,我们决定先采用云服务器作为数据库服务器,若性能仍不足再考虑迁移至RDS。此外,可以将数据库分布至多台云服务器上运行,进一步提升性能和可用性。

    这就是我们的选择——暂时选择云服务器而非RDS。先够用,没用再说。

    转载地址:http://fehkz.baihongyu.com/

    你可能感兴趣的文章
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>
    NI笔试——大数加法
    查看>>
    NLog 自定义字段 写入 oracle
    查看>>
    NLog类库使用探索——详解配置
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
    查看>>
    NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
    查看>>
    NLP学习笔记:使用 Python 进行NLTK
    查看>>
    NLP的神经网络训练的新模式
    查看>>
    NLP采用Bert进行简单文本情感分类
    查看>>
    NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
    查看>>
    NLP:使用 SciKit Learn 的文本矢量化方法
    查看>>