首页 > 传媒 > 关键词  > 人大金仓最新资讯  > 正文

人大金仓KINGBASE数据库与主流开源数据库性能实测

2021-10-12 16:46 · 稿源:站长之家用户

近年来,人大金仓的数据库产品受到了外界诸多的关注。做产品,免不了要接受用户的对比和选择,数据库因其行业的自身特点,还有很多开源的技术产品同台比拼,用户因此也会产生诸多疑问,国产数据库相比开源数据库到底如何,今天我们选择数据库的一项核心能力——性能,将金仓KingbaseES和目前业界主流的两种开源数据库MySQL、PostgreSQL进行该能力层面的对比,以期为用户创造更丰富、公平的视角来解读国产数据库当前的发展现状。

为了更易理解和比较,我们采用数据库业界性能评测常用的标准模型TPCC,分别对MySQL、PostgreSQL、KingbaseES在同一环境下进行测试,并对其进行全面极致调优,进而对比其最终的性能表现。TPCC主要用于评测数据库的联机交易处理(偏向OLTP能力),这类系统具有比较鲜明的特点,这些特点主要表现如下:

1、多种事务处理并发执行,充分体现了事务处理的复杂性;

2、在线与离线的事务执行模式;

3、多个在线会话终端;

4、适中的系统运行时间和应用程序运行时间;

5、大量的磁盘I/O数据流;

6、强调事务的完整性要求(ACID);

7、对于非一致的数据库分布,使用主键和从键进行访问;

8、数据库由许多大小不一、属性多样,而又相互关联的数据表组成;

9、存在较多数据访问和更新之间的资源争夺。

采用的测试环境、测试工具和选测版本如下:

硬件配置:

类型

配置

数据库服务器

CPU:56核,Intel(R) Xeon(R) Platinum 8280L CPU @ 2.60GHz

内存:187GB

磁盘:1*500GB SSD,2*2T NVMe

操作系统:CentOS Linux release 7.5.1804 (Core)

选测的软件版本及采用的测试工具

软件

版本

MySQL

8.0.26

PostgreSQL

13.1

KingbaseES

V8R6

BenchmarkSQL(测试工具)

5.0

1MySQL、PostgreSQL、KingbaseES调优及评测

我们对MySQL、PostgreSQL、KingbaseES这3个数据库在实际运行中反映出的性能问题,均进行相关性能瓶颈分析,并采用了针对性的调优手段,以使其能够展现最优的性能表现。

1.1MySQL调优及评测

1.1.1优化1,调整IO相关配置

分析:初始默认配置下,CPU利用率只有45%左右,大概在8万TPMC,通过分析资源等待情况,判断是IO问题。

C:\Users\yinqiang\AppData\Roaming\Ktalk\localfiles\media\7b090dac2f7de3654a30308c0604012e.png

优化点:增加数据文件、日志文件的缓存大小,增加配置如下:

key_buffer_size=2G

max_allowed_packet=5G

read_buffer_size=2G

read_rnd_buffer_size=2G

sort_buffer_size=2G

join_buffer_size=2G

net_buffer_length=5G

tmp_table_size=16G

thread-cache-size =100

innodb-thread-sleep-delay=0

效果:通过增加缓存优化了磁盘读写数据,性能提升两倍。

1.1.2优化2:缓解binlog资源等待

分析:再次观察系统资源情况,CPU利用率上升到50%左右,IO和网络没有压力,怀疑关键瓶颈是数据库内部的资源等待。检查MySQL当前等待事件:

img2

发现等待事件中最长的是binlog,虽然其时间比例在总时间中占比较低,但是数据库内部的等待视图看不到其他明显的问题,所以我们决定调整binlog相关的配置。

优化点:基于上述分析,我们将binglog设置为异步刷新,并且将日志级别设置为row来降低写入量。

效果:执行测试后重新检查等待事件,binlog等待已得到明显改善,tpmC也有了一定的提升。

1.1.3优化3:自旋锁优化

分析:再次观察系统资源情况,CPU利用率依然在50%左右,IO和网络没有压力,怀疑关键瓶颈是数据库内部的资源等待。但是数据库内部的等待事件列表已经看不出明显的问题,我们转而通过perf来继续查找根因,发现存在ut_delay的热点函数,所以判断是自旋锁相关的使用存在问题:

img3

优化:重新调整自旋锁相关的delay以及loops等参数。

innodb-spin-wait-delay=2

innodb-sync-array-size=1024

innodb-sync-spin-loops=30

innodb-spin-wait-pause-multiplier=5

innodb-log-spin-cpu-pct-hwm=100

innodb-log-spin-cpu-abs-lwm=100

效果:再次测试后发现,ut_delay的热点函数已经消失,tpmc有了大幅提升。

img4

1.2PostgreSQL调优及评测

针对PostgreSQL主要采用了调优手段:

1.2.1优化1,调整IO相关配置

分析:观察系统资源使用情况,发现有大量磁盘IO事件。当前磁盘读写已成为制约系统性能的首要瓶颈,考虑通过增大共享内存的方式尽量将数据放入内存中进行操作以减小磁盘IO压力。

优化点:增加系统缓存,调整参数配置如下

shared_buffers = 60GB

work_mem = 1GB

maintenance_work_mem = 2GB

效果:TPCC性能指标大幅提升,IO已不再是系统瓶颈。测试过程nmon性能统计:

img5

1.2.2优化2,commit事务提交优化

分析:观察此时系统资源使用情况,磁盘使用率较高,依然存在优化空间

优化点:优化commit提交。PostgreSQL提供了两个参数commit_delay,commit_siblings。commit_delay是事务提交和日志刷盘的时间间隔。并发的非只读事务数目较多的场景可以适当增加该值,使日志缓冲区一次刷盘可以刷出较多的事务,减少IO次数,提高性能。需要和 commit_sibling配合使用。commit_siblings是触发commit_delay的并发事务数,只有系统的并发活跃事务数达到了该值,才会等待commit_delay的时间将日志刷盘。

调整参数如下:

commit_delay = 10

commit_siblings = 16

效果:调整之后,性能有一定的提升

1.2.3优化3,数据刷盘优化

分析:此时观察系统资源,发现checkpoint进程持续占用CPU,分析日志发现数据库服务器checkpoint频率太高

img6

优化点:优化checkpoint,减少IO大量读写的次数。增加配置:

checkpoint_timeout = 120min

checkpoint_completion_target = 0.8

效果:增加checkpoint配置后,checkpoint频率过高告警已消失。

1.2.4优化4,autovacuum优化

分析:大量写入数据之后,发现vacuum进程持续占用CPU

优化点:PostgreSQL数据库自动清理机制,会自动清理过程中出现大量的数据扫描事件,频繁的清理过程反而会带来数据库过多的性能消耗,从而导致正常业务处理资源紧张。因此对自动清理过程进行限制可以在一定程度上提高业务处理性能。增加如下配置:

autovacuum = on

autovacuum_max_workers = 5

autovacuum_naptime = 20s

autovacuum_vacuum_cost_delay = 10

autovacuum_vacuum_scale_factor = 0.1

autovacuum_analyze_scale_factor = 0.02

vacuum_cost_limit = 2000

效果:vacuum进程长期占用CPU现象消失,性能有一定提升

1.3KingbaseES调优及评测结果

1.3.1优化1,IO优化

分析:在高并发场景下影响数据库处理能力性能主要因素有数据库IO消耗、服务器CPU使用效率等因素,且IO优化是数据库优化手段中最常见也是最常用的。KingbaseES数据库优化采用了共享内存优化、wal日志读写策略、IO频率、脏页刷盘策略等多种优化手段以提高高并发场景下的业务处理能力。

优化前性能统计:

img7

优化点:共享内存参数调整、wal日志策略调整、脏页存盘策略等

效果:CPU利用率极大的提升,TPMC也相应得到了提升。

优化后的性能统计:

img8

1.3.2优化2,等待事件优化

分析:观察此时数据库系统等待事件,ProcArrayGroupUpdate等待事件占据了34%的数据库时间,存在较为严重的性能问题。

优化点:优化事务快照实现方式,提升数据库并发处理能力。

优化前系统top等待事件分析统计:

img9

优化后系统top等待事件分析统计:

img10

效果:通过以上优化前后系统等待事件对比,可以看出数据库系统中ProcArrayGroupUpdate等待事件在优化前占所有等待事件的34.46%,优化后几乎不占用系统CPU太长事件,较大提升了整体性能。

1.3.3优化3,绑核提升性能

分析:CPU通用调度模式下,进程容易因为争抢时间片而在不同的CPU核心之间切换,由此带来上下文切换的开销问题,造成性能损耗。

优化点:KingbaseES通过将每个进程均匀的绑定到CPU核心上,在高并发业务压力下节省了进程在多CPU核之间切换带来的开销。

效果:调整之后,性能得到明显提升。

1.4经验优化

以上讨论了对三个数据库主要的调优手段和结果,调优后期,分别观察各数据库所在资源情况,CPU利用率上升到70-80%左右,IO和网络无没有明显压力。评估瓶颈优化的方式投入产出比较低,进一步根据已有经验进行调优方式的确认和细节参数的微调优化。

参考如下确认点:

1.所有的SQL执行计划都合理,无调整空间

2.优化IO,使用异步IO、优化脏页刷盘方式

3.优化热点函数、非必要处理事件

4.关闭监控系统

效果:CPU利用率略有提升,tpmc也随之略有提高。

1.5最终评测结果

基于综上描述的调优操作和评测,分别获得MySQL、PostgreSQL、KingbaseES优化后的性能指标,具体如下:

software&version

warehouses

terminals

测试时长

tpmC

MySQL8.0.26

100

200

10min

61万

PostgreSQL 13.1

100

200

10min

91万

KingbaseES V8R6

100

200

10min

127万

图片12

从结果上可见,在同样的基础环境和测试模型下,人大金仓KingbaseES产品的性能指标明显高于PostgreSQL和MySQL。KingbaseES为何性能上能够表现如此优异,让我们来探究下其内部的优化技术。

2浅谈KingbaseES“黑科技”

2.1面向NUMA架构多核优化

2.1.1NUMA的“前世今生”

为了寻求算力上不断新的突破,CPU先是朝着“频率”的方向高歌猛跟进,但随着逐渐受到物理极限的挑战,转为向核数越来越多发展,但由于所有CPU核都是通过共享一个北桥来读取内存,核数的不断增多带来了北桥响应时间的瓶颈问题。于是技术人员另辟蹊径,即将内存平均分配在各个die上,由此CPU核发展进入NUMA(Non-Uniform Memory Access)化时代,如此虽解决了原北桥读取内存的瓶颈问题,但由于NUMA架构下存在CPU访问本地内存的速度要比远端内存的访问速度快1.3--5倍,当CPU的核数越多,这种架构的内存访问的成本开销越大。

图片13

2.1.2NUMA架构发展对数据库的挑战

数据库是高并发,数据访问冲突严重的软件系统,其需要大量使用大规模共享内存,面对NUMA架构,就不可避免在运行过程中去访问远程内存了,在不干预情况下,数据库内部进程会在CPU的核之间飘移,当线程运行时从一个核飘移到一个新的核上运行时,原先访问的数据结构再次访问时就涉及远端访问,从而导致访问时延增加。

由此可见,虽然CPU的NUMA技术发展带来了自身能力的大幅提升,但上层软件能否有效利用,才能真正决定算力释放的效果,纵观IT技术栈,只有硬件、操作系统、数据库软件都要深度适配NUMA架构,才能充分发挥出NUMA的优势。因此人大金仓数据库产品KingbaseES作为企业级的商用数据库,为了帮助用户更高效地利用多核算力,提升数据库的响应速度,进行了针对性的优化。

2.1.3线程绑核,降低访问时延

防止线程飘移,让其实现CPU核的就近访问,这是降低访问时延的关键,因此采用将线程能够固定到具体的核上运行的方法。KingbaseES利用配置参数设定,利用操作系统设置亲和性接口达到将线程绑定到具体NUMA节点上的效果。

图片14

同时,KingbaseES是一个客户端服务器结构,客户端和服务器是通过网络通信来进行交互,网络是一个频繁的操作,并也会占用CPU,因此还需考虑将网络中断和业务处理进行区隔避免相互干扰,所以也对网络中断进行了绑核操作,并和后台业务线程绑核进行区分,这样能进一步提升利用效率,降低内耗。

2.1.4NUMA化数据结构改造,减少跨核访问

KingbaseES因业务处理需要,涉及很多对全局性数据结构的操作,如WALInsertLock、PGPROC等,在NUMA架构下,优化前,此类数据结构存放在共享内存中,当出现高并发访问,访问竞争激烈时,就会存在对其跨核访问,形成访问远端内存的局面,造成性能消耗。

根据以上问题,结合KingbaseES内部操作逻辑特点,并基于前文所述的线程绑核优化,我们进行了更深层更针对性的优化,即将操作频繁的的全局性数据结构按照NUMA节点的数量切分为多组,并分别在对应的NUMA节点上申请内存,当某线程需要操作相关数据结构,可访问自己所绑定的NUMA节点上本地内存的相关数据结构内容,减少了跨核的远端访问,提升了访问效率。

图片15

2.2高并发冲突环境下的并发控制算法调整,减少单点瓶颈

原模式下,每个数据库链接都会维护几个存储当前状态的结构,每当事务需要获得快照时,申请共享进程锁,遍历所有进程。快照需要记录包括当前正在运行的最大事务id、下一个将要开始的事务id,以及这二者之间正在运行的所有事务和子事务id列表。基于此,在可见性判断时可知,低于最小事务id的事务已结束,而大于最大事务id的事务视为正在运行,二者之间的事务态则需要根据列表判断。在高并发时,对所有进程进行遍历的时间变长,并且由于进程锁在很多场景下需要独占,例如下图所示的事务结束,大量并发进程相互之间的干扰愈加不可忽视,快照获取过程成为占比最高的部分。有鉴于此,如何最大程度的减少锁,成为解决问题的关键。

图片16

根据内核事务管理系统状态信息的分布特点,我们重新设计了数据结构,采用事务位图方式展现事务状态。如下图所示,在事务开始时使用独占进程锁设置事务状态位图,结束时仍然使用独占进程锁消除事务状态位图,而在获取快照时也仍然使用共享事务锁,但此时不再需要遍历进程状态。此设计使状态数据变得非常紧凑,能够快速获取事务状态,大幅降低共享锁的持有时间。

图片17

TPCC测试中,使用200并发终端压测,单独验证跟踪查看该方案最终测试结果,快照获取过程在整个运行期间的从占比6%以上,降低到0.2%以下。在不同平台上,tpmC均有不同幅度的提升,其中Intel平台大约20%,鲲鹏920平台约有5-6%。

3寄语

国产数据库蛰伏40年,人大金仓从第一代创办人坚信“中国也应有自己的数据库”之初心,到如今第三代金仓人面对国内外社会形势的变化,能扛起国产数据库承载核心业务应用的大旗,这一路走来,我们克服了很多困难,也得到了诸多客户的支持与肯定。未来,人大金仓将继续砥砺前行,不断提升用户对我们的信心,为中国数据库正名。

特别声明:以上内容(如有图片或视频亦包括在内)均为站长传媒平台用户上传并发布,本平台仅提供信息存储服务,对本页面内容所引致的错误、不确或遗漏,概不负任何法律责任,相关信息仅供参考。站长之家将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。任何单位或个人认为本页面内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向站长之家提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明(点击查看反馈地址)。本网站在收到上述法律文件后,将会依法依规核实信息,沟通删除相关内容或断开相关链接。

  • 相关推荐
  • 大家在看
  • 人大金仓助力广东省首届信创职业技能竞赛圆满完成

    11 月23 日,广东省首届信创职业技能竞赛决赛成功举办。此次竞赛为2021 年广东省职业技能大赛分散赛项之一,由广东省人力资源和社会保障厅主办,广东省公安厅网络警察总队提供业务指导,广东省网络空间安全协会承办,北京人大金仓信息技术股份有限公司等单位协办。决赛当天,广东省人力资源和社会保障厅副厅长、一级巡视员杨红山,广东省公安厅网警总队政委王敏伟,广东省公安厅科信总队四级调研员李伟明,以及广东省网络空间安全?

  • 敢为天下先,人大金仓做数据库内核人才培训的先行者

    目前,中国数据库领域内核研发人才仅有千余人,严重影响国内数据库产业的发展,北京人大金仓信息技术股份有限公司(以下简称“人大金仓”)作为国内内核专利最多的企业,紧跟新技术和新产业的发展,发起了金仓“核”计划数据库内核研发培训课程,为国产数据库的发展提供有力保障。11 月19 日-11 月21 日,金仓“核”计划第4 期(以下简称“核”计划)——数据库内核研发培训在北京太极软件园顺利完成,来自人大金仓及十余家WG2 成?

  • 人大金仓KINGBASE总裁杜胜-国产数据库发展趋势分享 即将开启

    新一轮科技革命与产业变革方兴未艾,正深刻影响着经济社会运行方式、国际竞争范式和世界格局发展走势。在 2050 年建成科技创新强国目标的指引下,分析我国科技产业发展面临的机遇和挑战,完善科技创新人才培养模式以全面提升核心竞争力,是实现创新型产业快速、高质量发展的关键。作为支撑应用程序运行不可或缺的关键要素,数据库在中国的发展遇到了哪些阻碍?中国的数据库产业在最近的 20 年里究竟在做什么?未来又将如何发展? 1

  • 操作系统产业峰会2021召开人大金仓携手合作伙伴共赢未来!

    11 月9 日,人大金仓受邀参加“操作系统产业峰会2021”,与来自操作系统产业的300 多家企业、组织等政产学研用代表,就技术创新、生态共建等话题进行探讨与分享。本次峰会由开放原子基金会指导,openEuler主办,中国移动、中国电信、中国联通、麒麟软件、普华基础软件等企业共同协办,以“立根铸魂,逐梦数字时代星辰大海”为主题,旨在推动操作系统产业发展和基础软件生态繁荣。人大金仓高级副总裁宋瑞、冷建全受邀参会,分别就国

  • 每日优鲜社区前置,完成在供应模式上的领跑

    每日优鲜作为社区零售行业的领跑者,通过线上线下协同作业的模式,为数千万家庭提供“超 4000 款商品,最快 30 分钟达”服务,真正地成为了百姓的“智慧菜篮子”。而现在,随着近些年来消费人群逐步向年轻化过渡,智能零售行业也迎来了更广阔的发展空间。 需求决定供应模式,随着现如今人们生活节奏的加快,用户需求与传统供应模式的矛盾已经逐步显现。每日优鲜为了能够切实解决人们的生活矛盾,依托互联网技术建立起了更为便捷的

  • 元宇宙抢人大战:风吹得太猛,年薪开到百万了

    不到半个月,有近十个技术美术(Technical Artist)类的岗位找到他,包括动画师、三维角色绑定师、特效设计师等,“很多是偏三维的技术需求,而且都是能做虚拟偶像的公司”,他告诉深燃,这是他之前换工作从没经历过的情况。他猜测,这和当下元宇宙概念的火爆有关,不论是游戏还是虚拟人,很多相关赛道都需要技术美术人才。

  • 追觅科技的吸尘器怎么样?让人大呼“国货真香”!

    说到吸尘器哪个牌子好,在二十多年前,大多数人的回答都会是松下、戴森或是三星等等国外品牌。那时候的国货默默无闻,大多消费者对于国货的态度充满了不信任,但随着国货的实力崛起,国货品牌具备了和海外品牌“扳手腕”的实力,成为强有力的国际竞争者,逐渐从“跑龙套”到“舞台C位”。作为智能清洁领域的后起之秀,追觅科技以“未来无限可能”的独特品牌调性、品牌价值及影响力不断在国外市场释放能量。数据统计, 2021 年 6 月

  • 飞机乘客对未接种疫苗的人大发雷霆的视频被证实为摆拍

    据CNET报道,新冠大流行期间可以经常看到人们在飞机上因口罩规则而大发雷霆的视频。但在最近几周,一段显示飞机上一名女性因为一名未接种疫苗的乘客而大发雷霆的视频在社交媒体上火了起来。不同的是,这个新的视频被证实是摆拍的。在这段由某人通过手机录制的视频中,一名女性在飞机上向空姐抱怨不得不坐在未接种疫苗的人旁边。然后飞行员出现,说没有人会受到歧视。这导致获得了飞机上其他人的一阵掌声。Twitter账户HoaxEye早些时

  • 困在双11“流量”的小红书,能否撑起200亿美元估值?

    今年,小红书的IPO传闻不断,其估值从30亿美元、60亿美元、100亿美元持续上涨;直至11月8日曝出由淡马锡、腾讯等领投的最新一轮融资,投后估值高达200亿美元。

  • a2宠粉月赢奖金抽奖品!专业配服务,产品安心到家,让品质生活更简单!

    给孩子挑选奶粉是宝妈们的重要功课市面上的奶粉广告层出不穷争相传递自己独特的奶粉概念让宝妈们一时难以选择奶粉行业重点通过营销提高形象与此同时也带来价格的上涨而奶粉是宝宝们的刚需品在此形势下许多宝妈将视线转向海淘代购寻找奶源品质更好性价比更高的海外奶粉产品传统代购采买、打包、发货全流程自主操作耗时久效率低而且还难以保障产品物流运输的安全性货物丢失、货物损坏偶有发生无论对于代购还是消费者获得良好的交易体

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天