高性能存储技术 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 中,并期望有更多的同学参与进来一起完善。
猜你喜欢: