国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

文章标题:

国产数据库金仓KingbaseES:从跟跑迈向并跑的突破历程深入剖析

文章内容:

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

🌟 嘿,我是Lethehong🌟

🌍 立志在坚不欲说,成功在久不在速🌍

🚀 欢迎关注:👍点赞⬆️留言收藏 🚀

🍀欢迎使用:小智初学计算机
网页IT深度知识智能体

🚀个人博客:Lethehong有一起互链的朋友可以私信我

GPT体验码https://gitee.com/lethehong/chatgpt-share

GPT体验码:私信博主~免费领取体验码

目录

写在前面:数据库格局悄然生变

驾驭金仓之法

二十五年的坚守:金仓的发展征程

技术深度解析:金仓的核心实力

MySQL调优与评测

优化1,调整IO相关配置

分析:初始默认配置下,CPU利用率约45%,吞吐量约8万TPMC,经资源等待分析,判定为IO问题。

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

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

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

成效: 借助缓存优化磁盘读写,性能提升一倍。

优化2:缓解binlog资源等待

分析: 再次观察系统资源,CPU利用率升至50%左右,IO与网络无压力,推测关键瓶颈为数据库内部资源等待。检查MySQL当前等待事件:

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

发现binlog是最长等待事件,虽占总时间比例不高,但内部等待视图无其他明显问题,故调整binlog配置。

优化方式: 将binlog设为异步刷新,日志级别调为row以减少写入量。

效果: 测试后binlog等待显著改善,tpmC有所提升。

优化3:自旋锁优化

分析:
再次观察系统资源,CPU利用率仍约50%,IO与网络无压力,推测瓶颈为内部资源等待。内部等待事件列表无明显问题,转而通过perf查找,发现ut_delay热点函数,判定自旋锁使用存在问题:

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

优化操作: 重新调整自旋锁相关参数。

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大幅提升。

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

PostgreSQL调优与评测

针对PostgreSQL的调优手段:

优化1,调整IO相关配置

分析:
观察系统资源使用,发现大量磁盘IO事件,磁盘读写成性能首要瓶颈,拟通过增大共享内存减少磁盘IO。

优化方案: 增加系统缓存,调整参数如下

shared_buffers = 60GB
work_mem = 1GB
maintenance_work_mem = 2GB

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

图片
优化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

效果: 调整后性能提升。

优化3,数据刷盘优化

分析: 观察到checkpoint进程持续占CPU,日志显示checkpoint频率过高。

图片

优化措施: 优化checkpoint,减少IO读写。增加配置:

checkpoint_timeout = 120min
checkpoint_completion_target = 0.8

效果: 增加配置后,checkpoint过高告警消除。

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究
优化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现象消失,性能提升。

KingbaseES调优与评测结果

优化1,IO优化

分析:
高并发场景下,数据库IO消耗、CPU使用效率影响性能,IO优化是常用手段。KingbaseES通过共享内存、wal日志等优化提升高并发性能。

优化前性能统计:

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

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

效果: CPU利用率大幅提升,TPMC提高。

优化后性能统计:

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究
优化2,等待事件优化

分析: 观察到数据库系统等待事件中ProcArrayGroupUpdate占34%时间,性能问题严重。

优化方式: 优化事务快照实现,提升并发能力。

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

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

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

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

效果: 优化前后对比,ProcArrayGroupUpdate等待占比从34.46%降为几乎无,性能大幅提升。

优化3,绑核提升性能

分析: CPU通用调度下,进程切换带来上下文开销,影响性能。

优化办法: KingbaseES将进程均匀绑定CPU核心,减少多核切换开销。

效果: 调整后性能明显提升。

真刀真枪的较量:金仓VS国外数据库

聊了技术细节,有人问金仓与Oracle、MySQL等“大佬”实力如何?

性能对比:客观公正

据第三方测试报告,测试结果有差异。金仓写入速度待提升,读性能优于其他数据库。

此结果有意义,金仓读性能出色,对查询密集型应用有利,但写入性能需优化。

需知,数据库性能受硬件、数据量等多因素影响,Postgres和MySQL性能相当,差异最多30%。

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

写在最后:国产数据库的“星辰大海”

写了这么多,国产数据库崛起是时代命题。

金仓25年发展是中国IT产业从跟跑到并跑的缩影,有迷茫挫折但坚守自主创新。

需客观看差距,金仓在技术、生态等方面与国际巨头有差距,但差距在缩小。

金仓证明中国人能造世界级数据库,选择金仓是对中国IT产业的支持,当更多企业和开发者支持国产数据库,中国数据库产业将迎来“星辰大海”。

金仓故事继续,中国数据库故事继续,精彩程度取决于每个人的选择与努力。

路虽远,行则将至;事虽难,做则必成。

这就是金仓,这就是中国数据库产业的现在与未来。

国产数据库金仓KingbaseES:从跟跑向并跑的突破历程深度探究

相关文章

暂无评论

暂无评论...