带你读《2022龙蜥社区全景白皮书》——5.5.1 利用io_uring提升数据库系统性能

简介: 带你读《2022龙蜥社区全景白皮书》——5.5.1 利用io_uring提升数据库系统性能

5.5 通用计算


5.5.1 利用io_uring提升数据库系统性能


背景概述


传统的IO软件栈已经无法完全释放出高性能存储设备的性能,高性能IO栈是当前存储领域重点研究的课题之一,代表性的如用户态 方案SPDK,以及标准的内核态方案io_uring。


技术方案


Linux社区从零开始设计一种全新的异步IO框架io_uring。io_uring为了避免在提交和完成事件中的内存拷贝,设计了一对共享的 ring buffer用于应用程序和内核之间的通信。该设计带来的好处有:1)提交、完成请求时无需应用和内核之间的内存拷贝;2)使 用SQPOLL高级特性时,应用程序无需系统调用;3)无锁操作,用Memory Ordering实现同步等。龙蜥社区自2020年上半年开始 参与io_uring社区开发,贡献了多个特性和优化,并在图数据库场景探索容器化部署和针对性优化。


技术优势:应用程序通过统一的标准系统调用来使用io_uring。相比传统的Linux Native AIO,io_uring消除了仅支持Direct IO的限 制以及额外的内存拷贝开销;相比用户态框架SPDK,io_uring可复用Linux内核的标准驱动,无需额外的用户态驱动开发,应用场 景更通用,编程接口更友好。


该技术特点包括:1)简单易用,方便应用集成;2)可扩展,不仅仅为存储IO使用,同样可以用于网络IO;3)特性丰富,满足所 有应用,如支持Buffer IO;4)高效,尤其是针对大部分512字节或4K IO场景;5)可伸缩,满足峰值场景的性能需要等。


应用场景:io_uring可适用于绝大多数对异步IO有诉求的业务和应用。目前,io_uring已在多个主流开源应用中集成,如RocksDB,Netty,QEMU,SPDK,PostgreSQL,MariaDB等。


图数据库引擎iGraph优化实践


图计算服务Graph Compute是阿里云自主研发的高性能分布式图计算产品,支持复杂图关系数据的存储、查询和计算,高效对接图 算法与模型,在搜索推荐广告、实时风控、知识图谱、社交网络等场景有着广泛的应用。其内核引擎iGraph在基于磁盘的查询访问 场景下引入了io_uring,支持高IOPS下稳定运行。


image.png


实践效果:


图数据库引擎iGraph经过io_uring适配优化后,线上运行环境在CPU开销不高于原始使用Linux Native AIO版本的前提 下,业务端到端时延优化达20%。


相关文章
|
7月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
485 158
|
7月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
505 156
|
7月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
608 161
|
11月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
8月前
|
缓存 关系型数据库 MySQL
MySQL数据库性能调优:实用技术与策略
通过秉持以上的策略实施具体的优化措施,可以确保MySQL数据库的高效稳定运行。务必结合具体情况,动态调整优化策略,才能充分发挥数据库的性能潜力。
315 0
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
物联网 测试技术 API
时序数据库 InfluxDB 3.0 版本性能实测报告:写入吞吐量提升效果验证
TSBS 测试表明,对于少于 100 万台设备的数据集,InfluxDB OSS 3.0 的数据写入速度实际上比 InfluxDB OSS 1.8 更慢。 对于 100 万台及以上设备的数据集,InfluxDB OSS 3.0 的数据写入性能才开始超过 InfluxDB OSS 1.8。 InfluxDB OSS 3.0 的数据写入接口与 InfluxDB 1.8 并不兼容,用户无法顺利迁移。
1131 7
|
存储 NoSQL MongoDB
从 MongoDB 到 时序数据库 TDengine,沃太能源实现 18 倍写入性能提升
沃太能源是国内领先储能设备生产厂商,数十万储能终端遍布世界各地。此前使用 MongoDB 存储时序数据,但随着设备测点增加,MongoDB 在存储效率、写入性能、查询性能等方面暴露出短板。经过对比,沃太能源选择了专业时序数据库 TDengine,生产效能显著提升:整体上,数据压缩率超 10 倍、写入性能提升 18 倍,查询在特定场景上也实现了数倍的提升。同时减少了技术架构复杂度,实现了零代码数据接入。本文将对 TDengine 在沃太能源的应用情况进行详解。
583 0
|
Cloud Native 关系型数据库 分布式数据库
世界第一!阿里云PolarDB刷新全球数据库性能及性价比记录
世界第一!阿里云PolarDB刷新全球数据库性能及性价比记录
462 0