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

本文涉及的产品
云原生网关 MSE Higress,422元/月
性能测试 PTS,5000VUM额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 带你读《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%。


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
8天前
|
缓存 监控 关系型数据库
如何根据监控结果调整 MySQL 数据库的参数以提高性能?
【10月更文挑战第28天】根据MySQL数据库的监控结果来调整参数以提高性能,需要综合考虑多个方面的因素
41 1
|
8天前
|
监控 关系型数据库 MySQL
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
21 1
|
8天前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
28 1
|
12天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
20 4
|
10天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
14 1
|
11天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
180 1
|
15天前
|
存储 缓存 监控
数据库优化:提升性能与效率的关键策略
【10月更文挑战第21】数据库优化:提升性能与效率的关键策略
|
15天前
|
存储 分布式计算 监控
数据库优化:提升性能与效率的全面策略
【10月更文挑战第21】数据库优化:提升性能与效率的全面策略
|
8天前
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
ESSD Entry云盘是阿里云推出的新一代云盘,具备高IOPS、低延迟和企业级数据保护能力。适用于开发与测试场景,支持按量付费和包年包月计费模式。99元和199元的ECS经济型e实例和通用算力型u1实例均采用ESSD Entry系统盘,性价比高。详细性能参数和价格请参考阿里云官方页面。
39 0
|
9天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
46 0
下一篇
无影云桌面