热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MogDBMOT性能基准

我们的性能测试是基于业界和学术界通用的TPC-C基准。测试使用了BenchmarkSQL(请参见MOT样例TPC-C基准),并且使用交互式SQL命令而不是存储过程来生成工作负载。

我们的性能测试是基于业界和学术界通用的TPC-C基准。

测试使用了BenchmarkSQL(请参见MOT样例TPC-C基准),并且使用交互式SQL命令而不是存储过程来生成工作负载。


img 说明: 使用存储过程方法可能会产生更高的性能结果,因为它需要大大减少网络往返和数据库封装SQL处理周期。


评估MogDB MOT性能和磁盘性能的所有测试都使用了同步日志记录和在MOT中优化的group-commit=on版本。

最后我们进行了额外测试,评估MOT快速采集大量数据的能力,并将其作为中间层数据采集解决方案的替代方案。

2020年6月完成全部测试。

下面是各种类型的MOT性能基准。



MOT硬件

本次测试使用的服务器满足10GbE组网和以下配置:



  • 基于Arm64/鲲鹏920的2路服务器,型号为TaiShan 2280 v2(128核),800GB RAM,1TB NVMe盘。服务器详细规格参见此页面。操作系统为openEuler。

  • 基于Arm64/鲲鹏960的4路服务器,型号为TaiShan 2480 v2(256核),512GB RAM,1TB NVMe盘。服务器详细规格参见此页面。操作系统为openEuler。

  • 戴尔x86服务器,2路英特尔至强金牌6154 CPU @ 3Ghz,18核(超线程开启时共72核),1TB RAM,1TB SSD。操作系统为CentOS 7.6。

  • x86超微服务器,8路英特尔(R)至强(R) CPU E7-8890 v4 @ 2.20GHz,24核(超线程开启共384核),1TB RAM,1.2 TB SSD(希捷1200 SSD 200GB,SAS 12Gb/s)。操作系统为Ubuntu 16.04.2 LTS。

  • 华为x86服务器,4路英特尔(R)至强(R) CPU E7-8890 v4 @ 2.2Ghz(超线程开启共96核),512GB RAM,SSD 2TB。操作系统为CentOS 7.6。



MOT测试总结

MOT比磁盘表性能提升2.5至4.1倍,在Arm/鲲鹏256核服务器上达到480万tpmC。测试结果清楚表明MOT在扩展和利用所有硬件资源方面的卓越能力。随着CPU槽位和服务器核数增加,性能会随之跃升。

MOT在Arm/鲲鹏架构下最高可达3万tpmC/核,在x86架构下最高可达4万tpmC/核。

由于持久性机制更高效,MOT中的复制开销在Arm/鲲鹏主备高可用场景下为7%,在x86服务器中为2%。而磁盘表的开销在Arm/鲲鹏中为20%,在x86中为15%。

最终,MOT延迟降低2.5倍,TPC-C事务响应速度提升2至7倍。



MOT高吞吐量

MOT高吞吐量测试结果如下。



Arm/鲲鹏2路128核



  • 性能

    下图是华为Arm/鲲鹏2路128核服务器TPC-C基准测试的结果。

    一共进行了四类测试:



    • MOT和MogDB基于磁盘的表各进行了2次测试。

    • 其中两项测试是在单节点(无高可用性)上执行,这意味着没有向备节点执行复制。其余两个测试在主备节点(有高可用性)上执行,即写入主节点的数据被复制到备节点。

    MOT用橙色表示,基于磁盘的表用蓝色表示。

    图 1 Arm/鲲鹏2路128核性能基准

    Arm-鲲鹏2路128核性能基准

    结果表明:



    • 正如预期的那样,在所有情况下,MOT的性能明显高于基于磁盘的表。

    • 单节点:MOT性能为380万tpmC,而基于磁盘的表为150万tpmC。

    • 主备节点:MOT性能为350万tpmC,而基于磁盘的表为120万tpmC。

    • 相比单节点(无高可用性,无复制),在有复制需求的生产级(高可用性)服务器(主备节点)上,使用MOT的好处更显著。

    • 同在主备高可用场景下,MOT复制开销:Arm/鲲鹏为7%,x86为2%;而基于磁盘的表复制开销:Arm/鲲鹏为20%;x86为15%。



  • 单CPU核性能

    下图是华为Arm/鲲鹏服务器2路128核的单核TPC-C基准性能/吞吐量测试结果。同样地,一共进行了四类测试:

    图 2 Arm/鲲鹏2路128核的单核性能标杆

    Arm-鲲鹏2路128核的单核性能标杆

    结果表明,正如预期的那样,在所有情况下,MOT的单核性能明显高于基于磁盘的表。相比单节点(无高可用性,无复制),在有复制需求的生产级(高可用性)服务器(主备节点)上,使用MOT的好处更显著。





Arm/鲲鹏4路256核

下面通过单连接数的tpmC来展示MOT出色的并发控制性能。

图 3 Arm/鲲鹏4路256核性能基准

Arm-鲲鹏4路256核性能基准

结果表明,随着核数增多,性能也显著提高,在768核时性能达到480万tpmC的峰值。



x86服务器



  • 8路384核

下面通过比较基于磁盘的表和MOT之间单连接数的tpmC,来展示MOT出色的并发控制性能。本次测试以8路384核x86服务器为例。橙色表示MOT的结果。

图 4 8路384核x86服务器性能基准

8路384核x86服务器性能基准

结果表明,在386核服务器上,MOT的性能明显优于基于磁盘的表,并且单核性能非常高,达到300万tpmC/核。



  • 4路96核

在4路96核服务器上,MOT实现了390万tpmC。下图展示了高效MOT的单核性能达到4万tpmC/核。

图 5 4路96核服务器性能基准

4路96核服务器性能基准



MOT低延迟

以下是在Arm/鲲鹏两路服务器(128核)上进行测试的结果。单位为毫秒(ms)。

图 1 低延迟(90th%)性能基准

低延迟(90th-)性能基准

MOT的平均事务速度为2.5倍,MOT延迟为10.5ms,而基于磁盘的表延迟为23至25ms。


img 说明: 计算平均数时,已考虑TPC-C的5个事务分布占比。有关更多信息,请参阅MOT样例TPC-C基准中关于TPC-C事务的说明。


图 2 低延迟(90th%,事务平均)性能基准

低延迟(90th-事务平均)性能基准



MOT恢复时间目标(RTO)和冷启动时间


高可用RTO

MOT完全集成到MogDB中,包括支持主备部署的高可用场景。WAL重做日志的复制机制将把复制更改到数据库备节点并使用备节点进行重放。

如果故障转移事件发生,无论是由于计划外的主节点故障还是由于计划内的维护事件,备节点都会迅速活跃。恢复和重放WAL重做日志以及启用连接所需的时间也称为恢复时间目标(RTO)。

MogDB(包括MOT)的RTO小于10秒。


img 说明: 灾难发生后必须恢复业务流程,避免导致连续性中断相关的不可接受的后果,而RTO表示的就是这段流程的持续时间和业务级别。换句话说,RTO就是在回答这个问题:在通知业务流程中断后,需要多长时间才能恢复?


另外,从MOT高吞吐量的MOT中可以看出,在Arm/鲲鹏架构下,主从高可用场景复制开销仅为7%,在x86架构下仅为2%,而基于磁盘的表复制开销为2%。Arm/鲲鹏机型为20%,x86机型为15%。



冷启动恢复时间

冷启动恢复时间是指系统从停止模式到能够完全运行所需的时间。在内存数据库中,这包括将所有数据和索引加载到内存中的时间,因此它取决于数据大小、硬件带宽和软件算法能否高效地处理这些数据。

MOT测试使用40 GB/s的ARM磁盘测试,可以在100 GB/s的时间内加载数据库。MOT的索引非持久化,因此它们是在冷启动时创建的。实际加载的数据加索引大小约多50%。因此,可以转换为MOT冷启动时间的数据和索引容量为40秒内150GB,或225 GB/分钟(3.75 GB/秒)。

冷启动过程和从磁盘加载数据到MOT所需时间如下图所示。

图 1 冷启动时间性能基准

冷启动时间性能基准



  • 数据库大小:加载整个数据库(每数据库GB)的总时间由蓝色线条和左侧的Y轴时间(秒)表示。

  • 吞吐量:数据库每秒GB吞吐量由橙色线和右侧的Y轴吞吐量GB/秒表示。


img 说明: 测试过程中表现的性能与SSD硬件的带宽非常接近。因此,可以在不同的平台上实现更高(或更低)的性能。




MOT资源利用率

在4路96核512GB RAM的x86服务器上测试的资源利用率如下所示。MOT能够高效持续消耗几乎所有可用的CPU资源。例如,192核390万tpmC的CPU利用率几乎达到100%。



  • tmpC:每分钟完成的TPC-C事务数以橙色条柱和左侧的Y轴tpmC表示。

  • CPU利用率(%):CPU利用率由蓝色线条和右侧的Y轴CPU%表示。

图 1 资源利用率性能基准

资源利用率性能基准



MOT数据采集速度

该测试模拟海量物联网、云端或移动端接入的实时数据流,快速持续地把海量数据注入到数据库。



  • 本次测试涉及大量数据采集,具体如下:

    • 1000万行数据由500个线程发送,2000轮,每个insert命令有10条记录(行),每条记录占200字节。

    • 客户端和数据库位于不同的机器上。 数据库服务器为2路72核x86服务器。



  • 性能结果

    • 吞吐量:10000个记录/核,或2MB/核。

    • 延迟:2.8ms每10条记录批量插入(包括客户端-服务器组网)。




img 注意: 预计MOT将针对这一场景进行多项额外的甚至重大的性能改进。更多关于大规模数据流和数据采集的信息,请参阅MOT应用场景



推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
author-avatar
小白学习
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有