高性能存储技术 SIG:存储领域的发展历程,本质上是存储介质与软件栈相互促进发展的过程。高性能存储技术兴趣组致力于存储栈性能挖掘。


SIG 目标:当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。 期望通过龙蜥社区(OpenAnolis)合作,打造标准的高性能存储技术软件栈,推动软硬件协同发展。


欢迎更多开发者加入高性能存储技术SIG:


网址:https://openanolis.cn/sig/high-perf-storage


邮件列表:cloud-kernel@lists.openanolis.cn


高性能存储技术SIG 8月份运营月报 | 龙蜥SIG_redis


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 8月份运营月报 | 龙蜥SIG_rocksdb_02

SIG网址:https://openanolis.cn/sig