You need to enable JavaScript to run this app.
导航

自建高性能数据库-选型与性能测试

最近更新时间2024.04.17 16:52:48

首次发布时间2023.07.28 11:35:20

本文介绍如何选择火山引擎云服务器自建各类高性能数据库。

一、场景描述

数据库一直是构建现代应用的重要组件,几乎所有应用都始于数据并终于数据。随着数据驱动时代的到来,数据更是无处不在,进一步成为未来创新的基石。

在应用的微服务化、数据类型多样化的大趋势下,单一种类的数据库已经无法满足现代应用的需求,因此各类专门构建的数据库应运而生,包括关系数据库、键值数据库、文档数据库、内存中数据库、图形数据库、时间序列数据库、宽列数据库和分类账数据库等等。

随着数据网格概念的提出,数据管理平台也正由中心化转向业务(LOBs)定制化。各业务根据需求进行定制,构建高可用,高性能,特性丰富的数据管理平台对基础设施的要求较高。

二、数据库选型

下表展示了各类数据库的功能特性及相关产品,需要根据实际业务选择合适的数据库产品。

数据库类型数据库特点应用类型数据库产品
关系数据库数据准确,连续性高,对事务支持,无限制索引。传统应用程序、ERP、CRM 、交易系统、数据仓库PostgreSQL、MySQL、MariaDB、Oracle Database、SQL Server
键值数据库快速并发读取/写入 ,灵活的数据结构。高流量 Web 应用、电商购物车、游戏、直播,实时竞价,产品目录,客户偏好保存Redis、TiKV
内存数据库亚毫秒级延迟,每秒百万级操作,支持多种编程语言,可配合各种数据库使用。缓存、会话管理、游戏排行榜、地理位置信息,实时分析Redis、Memcached
文档数据库结构灵活,半结构数据,层次化,快速查询,强大的索引能力。内容管理、客户画像、用户配置文件、个性化、移动应用MongoDB、Couchbase
宽列结构灵活,高扩展性,单行数据较大。用于设备维护、队列管理和路线优化的大规模工业应用程序、实时数据分析Cassandra
图数据库针对强关系数据,优化查询和遍历。欺诈检测、社交网络、推荐引擎、数据血缘、知识图谱Neo4j、dgraph
时序数据库高扩展性,适合增长迅速的数据,并监控数据的变化。IoT 应用、工业遥测、DevOps、应用监控influxDB、QuestDB、TimescaleDB
分类账准确,透明,不可变更,可审计,高扩展性。系统记录、供应链、注册、银行事务、HR及薪资系统、零售、保险、制造Amazon QLDB, Alicloud LedgerDB

三、性能测试

在确定数据库类型后,您可以采用性能测试的方式来确认数据库的配置。

前提条件

在进行本实践前,您需要完成以下准备工作:

  • 已注册火山引擎账号,并完成实名认证。

  • 火山引擎账户余额大于100元。

火山引擎基础环境构建

您需要在火山引擎上完成相关的环境部署,包括创建私有网络,创建云服务器等,这些是数据库安装并进行性能测试的必要条件。

创建私有网络和子网

  1. 登录火山引擎私有网络控制台。

  2. 在顶部导航栏选择私有网络所在的地域,本操作选择“华北2(北京)”。

  3. 单击“创建私有网络”,进入私有网络配置界面。

  4. 参考下图配置私有网络和子网,配置完成后单击“确定”。
    image.png

创建云服务器

  1. 登录云服务器控制台,在顶部导航栏选择华北2(北京)地域。

  2. 在左侧导航树选择“实例与镜像 > 实例”,然后单击“创建实例”。

  3. 参考下图配置相关参数,本文以SQL Server为例,选择Windows Server镜像。
    实际操作中,您可根据数据库类型进行参数的配置。
    image.png

  4. 配置完成,单击“下一步:网络和高级配置”,参照下图进行网络配置,完成后单击“下一步:确认订单”。

    image.png

  5. 在确认订单页面,确认各项参数信息。根据控制台指引查阅并确认相关协议,单击“创建实例”。

    image.png

  6. 在创建完成页面,单击“去控制台”,在实例列表中可查看新创建的2台云服务器实例。

    云服务器实例名称如果显示相同名称,可单击名称进入概览页面,进行修改。本示例将云服务器实例名称修改为HammerDB-01和HammerDB-02。

    image.png

  7. 添加安全组规则。

    1. 单击任意云服务器实例名称,进入实例“概览”页面。

    2. 单击安全组名称“Default”,页面跳转至云服务器安全组“概览”页面。

    image.png

  8. 单击“访问规则”,查看安全组入方向规则,确认是否已放通3389端口,以远程登录Windows Server。

    • 若已放通,则将有如下图所示的一条规则,相同安全组内的云服务器所有端口默认互通。

    • 若未放通,可单击“添加规则”,参照下图添加一条放通3389端口的规则。

    image.png

部署测试工具HammerDB

在云服务器HammerDB-01中部署HammerDB。

  1. 在云服务器实例列表页面,单击HammerDB-01后的“远程连接”。

  2. 单击VNC下的“立即登录”。

    image.png

  3. 同时按住Ctrl + Alt + Del,或参考下图按照图中标记顺序依次单击,界面显示密码输入框。输入密码,远程登录云服务器 ,首次登录需更改密码。

    image.png

  4. 打开IE浏览器,在地址栏手动输入“https://www.hammerdb.com/download.html”,下载安装测试软件HammerDB。

    image.png

  5. 下载完成后,双击安装HammerDB,根据安装向导指引,完成安装。

    image.png

    如下图所示,表示完成安装。

    image.png

  6. 在IE浏览器上打开一个新页面,在地址栏输入“https://go.microsoft.com/fwlink/?linkid=2168524”下载SQL Server ODBC Driver 17,跟随安装向导指引,完成安装。

    image.png

部署数据库

在云服务器HammerDB-02上部署SQL Server 2019。

  1. 在云服务器实例列表页面,单击HammerDB-02后的“远程连接”。

  2. 单击VNC下的“立即登录”,参考上文“部署测试工具HammerDB”部分步骤3,登录HammerDB-02。

    image.png

  3. 打开IE浏览器,在地址栏输入“https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads”,下载SQL Server 2019。

    image.png

  4. 单击安装“Basic”类型的SQL Server 2019。

    image.png

    单击“Accept”,继续安装,直至完成。

    image.png

  5. 在IE浏览器SQL Server 2019下载页面,下拉至“SQL Server 工具和连接器”部分,单击“下载SQL Server Management Studio(SSMS)”。

    image.png

  6. 页面跳转至下载页,单击如下图所示位置,下载SQL Server Management Studio(SSMS)18.10。

    image.png

  7. 根据界面引导安装SSMS,安装完成后需要重新启动云服务器。

    image.png

  8. 配置SQL Server。

    1. 参照下图,打开SQL Server Configuration Manager。

      image.png

    2. 在SQL Server Configuration Manager中,右键单击Named Pipes和TCP/IP“Status”下的“Disable”,修改为“Enable”,启用Named Pipes及TCP/IP协议。

      image.png

  9. 参照下图操作,使用SSMS进入数据库。

    image.png

  10. 单击“Connect”连接数据库。

    image.png

  11. 右键单击数据库名称,然后单击“Properties”进入属性设置。

    image.png

  12. 在“Security”页签下,选中启用“SQL Server and Windows Authentication mode”,然后单击“OK”,在弹出的对话框中单击“OK”。

    image.png

  13. 右键单击“Database > New Database”,新建数据库。

    image.png

  14. 参照下图,创建名为“tpcc”的数据库,完成后单击“OK”。

    image.png

  15. 在“Security”目录下,右键单击“Logins > New Login”。

    image.png

  16. 参照下图,创建“tpcc-test”用户,此时不要单击“OK”。

    image.png

  17. 单击“User Mapping”,勾选“tpcc”,然后单击“OK”。

    image.png

生成测试数据

使用HammerDB工具生成测试数据。

  1. 远程连接安装HammerDB的云服务器HammerDB-01,打开HammerDB。

  2. 双击“SQL Server”,选择TPCC-C,然后单击“OK”。

    image.png

  3. 双击“TPROC-C”,在展示的目录下双击“Schema Build” ,在展开的目录下双击“Options”。

    image.png

  4. 在新建Options配置框,输入安装SQL Server的云服务器HammerDB-02的私网IP地址、tpcc-test数据库账号及密码,设置期望的Warehouse数量(数据库生成测试数据的大小)及并行插入的虚拟账号数量,配置完成后单击”OK“。

    云服务器的私网IP地址,可在云服务器控制台“实例”页面下获取。

    image.png

  5. 双击“Build”,在弹出对话框中单击“Yes”。

    image.png

  6. 开始插入测试数据,此过程可能需要几个小时。

    image.png

    如下图所示,表示数据插入完成。

    image.png

  7. 单击红色方块,销毁虚拟客户端。

    image.png

开始测试

  1. 参照下图单击“Load”,加载测试脚本。

    image.png

  2. 参照下图单击“Virtural User”下的“Options”,在弹出的对话框中设置想要测试的客户端数“Virtual Users”(数字越大并发越大),操作间隔“User Delay”、“Repeat Delay”(数字越小操作越密集),然后单击“OK”。

    image.png

  3. 双击“Create”创建虚拟客户端。

    image.png

  4. 双击“Run”开始测试。

    image.png

  5. 单击打开Transaction Counter,查看TPM。

    image.png

测试总结

我们可以通过多次测试相同机型取平均值的方式,获得尽量准确的性能测试结果。通过充分测试不同机型云服务的性能表现,以确保采用性价比最高的方案搭建不同种类的数据库。