高性能存储技术 SIG:存储领域的发展历程,本质上是存储介质与软件栈相互促进发展的过程。高性能存储技术兴趣组致力于存储栈性能挖掘。
SIG 目标:当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。 期望通过龙蜥社区(OpenAnolis)合作,打造标准的高性能存储技术软件栈,推动软硬件协同发展。
欢迎更多开发者加入高性能存储技术SIG:
网址:https://openanolis.cn/sig/high-perf-storage
邮件列表:cloud-kernel@lists.openanolis.cn
SIG 本月亮点
统信软件合作统信软件作为 SIG 的 Maintainer 之一,深度参与到高性能存储技术 SIG 当中。一期计划先基于龙蜥操作系统( Anolis OS) 搭载的 io_uring 进行了评测,并将相关技术移植到统信 OS 中。评测对象包括:使用 fio 基于 NVMe 盘对比测试 libaio 和 io_uring 的 IO 性能,使用 SIG 中 nginx 和 redis 支持 io_uring 的 POC 分支版本对比测试 io_uring 和 epoll 的网络性能等。初步测试结果表明,大部分场景 io_uring 的确能带来性能优化,与 SIG POC 数据基本一致,具体测试报告细节整理完成后会发布到 SIG 中。感谢统信同学 @wangleic、@HanGuangyu 的参与。
评测过程中问题发现及修复:
1、redis io_uring fast poll 支持问题
修复补丁:783f39482587 fix wrong poll mask in fast poll(@maomao123)
2、redis-benchmark 工具 register files 支持
修复补丁:02b8c5eaa2ab add missing register files in redis-benchmark(@maomao123)
3、redis sqpoll 支持
修复补丁:1b631b5a6350 add a sqpoll argument for server and benchmark(@maomao123)
4、redis 在打开 NUMA 场景性能不及预期
测试中通过绑核解决。(@maomao123、@HanGuangyu)
5、nginx 短连接性能下降 20%
比 SIG POC 数据下降 5% ~ 10% 要差,初步分析原因与频繁 accept 连接
有关,后续需要重点分析和优化。(@maomao123)
软件包更新
1、支持 CPU 资源优化特性的 liburing 适配
优化补丁:a6cf7cd33634 support sqthread cpu resource optimization(@maomao123)
SIG 项目进展
已完成项目
- Cloud Kernel 4.19 支持 io_uring
- io_uring 性能回归框架
- io_uring 应用 POC
- Redis
- Nginx
- Echo Server
进行中项目
- io_uring 优化
- RocksDB
- Netty
- virtio-fs per-file dax 支持
- 16k 原子写
计划中项目
- 容器镜像加速
- IO 业务模型分析
SIG 项目动态
结合异步 IO 业务场景,围绕 io_uring 我们将继续探索对 RocksDB 以及 Netty 的优化。其中 RocksDB 是广泛应用的 KV 存储引擎,Netty 作为 Java 网络应用的基础框架同样有着非常广泛的应用。(@wangxiaoguang)virtiofs 目前已经在容器化存储场景(kata)默认使用,我们针对高性能场景提出 per-file DAX 优化,已经发到 v4 版本,正在上游社区推进中。(@Jingbo Xu)我们也在积极探索数据库场景的垂直优化,目前针对 MySQL double write 带来的性能和带宽开销做了一些研究,期望通过文件系统层的优化来消除 double write。(@gaoxiang、@josephqi)
由于上述工作都会涉及到 Anolis Kernel,而当前 Kernel SIG 相关流程规范还在讨论中。待 Kernel SIG 的流程规范公布后,我们会第一时间将我们的研究成果开放在高性能存储技术 SIG 中,并期望有更多的同学参与进来一起完善。
—— 完 ——
关于龙蜥社区 SIG
SIG 是开放的,并争取让交付成果成为社区发行的一部分,由组内核心成员主导治理,可通过邮件列表和组内的成员进行交流。龙蜥社区SIG目前已超 20 个,包括跟踪诊断技术 SIG、商密软件栈、高性能存储技术 SIG、Java 语言与虚拟机 SIG、Cloud Kernel、OceanBase SIG 等。
SIG网址:https://openanolis.cn/sig
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】拉你入群;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
龙蜥社区钉钉交流群 龙蜥社区-小龙