高性能存储SIG月度动态:ANCK ublk完成POC测试,EROFS优化xattr元数据开销

简介: 高性能存储 3 月度 SIG 动态送达,请查收。

高性能存储技术 SIG(Special Interest Group)目标:高性能存储技术兴趣组致力于存储栈性能挖掘,当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。期望通过社区平台,打造标准的高性能存储技术软件栈,推动软硬件协同发展。

01 本月 SIG 整体进展

本月合入 Anolis 主线 PR 26 个,包含多个重要组件的更新。

erofs 支持精简的 long xattr name prefixes,优化 overlayfs 场景 xattr 元数据开销。

ANCK 5.10 ublk 已完成 POC 测试,相比 tcmu 时延优化 1 倍。

io_uring asio 协程优化方案已经确定,预计性能优化 10%。

DSMS 管理平台的开发基本完成,dsms-storage 适配 Anolis 23 进行中。

感谢中兴的同学提交了多个 bugfix。

02 项目具体进展

1、Anolis OS

ext4:修复 ext4_xattr_delete_inode hang(PR1362)

xfs:xfs_qm 清理(PR1326),修复 xfs_sysfs_init 内存泄露(PR1332/PR1334),移除 xfs_rename 中不正确的 ASSERT(PR1351),修复 force shutdown UAF(PR1376)

fuse:修复 fuse flush/resend 接口 bug(PR1302)

nfs:修复 RECLAIM_COMPLETE EACCES 问题(PR1324/PR1325),修复 slot 分配失败的内存泄露(PR1346/PR1347),修复遍历 grace_list 缺少锁保护问题(PR1350),修复参数解析空指针(PR1370),处理 CREATE_SESSION NFS4ERR_NOSPC(PR1368/PR1360)

misc:修复 hugetlbfs_parse_param 空指针(PR1352),修复 configfs_create_dir 内存泄露(PR1357),修复 nbd_start_device_ioctl hang(PR1356),修复 rbd_sysfs_init() 内存泄露(PR1372/PR1373),修复 md_cluster unlock_all_bitmaps 野指针(PR1367),修复 nvme_alloc_admin_tags 空指针(PR1405)

vfio:Clear the caps->buf to NULL after free(PR1422/1427),修复 drbd_create_device UAF(PR1251)

VFS:修复 ltp/openat04(PR1489)

2、容器镜像加速

erofs 文件系统支持精简的 long xattr name prefixes,用于解决存储 overlayfs xattr 元数据(例如 composefs 模式)重复 name 的额外开销, 更多背景可参考:

https://lore.kernel.org/r/20230407141710.113882-1-jefflexu@linux.alibaba.com

erofs-utils 支持从 tarball 生成索引直接挂载,最新补丁正在测试中:

https://lore.kernel.org/r/20230401072705.99060-1-hsiangkao@linux.alibaba.com

3、用户态存储

截止目前,上游社区一共提出了三种 ublk 零拷贝方案:https://lwn.net/Articles/926118/

我们也在调研一种基于 io_uring register 模式的零拷贝的方案,预计后续将发出 RFC 补丁到上游社区。

ublk 在 ANCK 5.10 上已经完成回合,并在分布式存储项目进行了 POC 测试,结果显示 ublk 的单 I/O 时延能优化到 tcmu 的一半,有很大的优势。

ACNK 5.10 和之前基于 6.1 主线上测试 ublk 的性能数据很接近,表明 ANCK 5.10 的 ublk 已经基本可用,后续将随 5.10.134-014 版本发布。

4、io_uring

对 io_uring echo server 测试框架进行优化,对每个 IO 请求引入工作负载从而模拟真实的业务环境,io_uring 的性能开始稳定的比 epoll 提高 10% 左右,原因是 io_uring 的提交 batch 有一定程度的提高。在进行 IO 请求的工作负载处理时,网络可能继续有请求到来,从而可以在一次 io_uring_enter 中提交多个请求,提高 batch。

我们调整了 io_uring asio 协程的实现方案,通过基于 io_uring 的 mulit-shot recv 和 provid-buffer 机制,采用 completion models 模式来实现异步编程。

此方案的好处是在网络中断中直接触发 io_uring recv 操作,缩短的整个 IO 链路。而传统 Readiness 编程模型需要先等待 IO 事件,然后再发起 IO 操作。目前 POC 代码完成 60% 左右。

5、DSMS

dsms-engine 开发进行中,主要是部署部分功能,B 版本测试同步进行中。

由于 Anolis 23 上的 ceph 版本为 17.x,dsms-storage 仓库目前以来 15.x。经过 SIG 例会讨论,决定放到 dsms 子仓库中来维护。

03 SIG 下一步计划

erofs Linux v6.4 合入窗口准备,erofs-utils 支持 tarball 模式合入主线,deflate 压缩算法支持等。

  • ublk 分布式存储项目业务适配。
  • io_uring asio 优化方案实现和 POC 测试。
  • DSMS 继续适配 Anolis 23。

附录:SIG 项目一览

  • io_uring
  • virtiofs
  • 容器镜像加速
  • 数据库优化
  • 用户态存储
  • DSMS

详情内容见高性能存储技术 SIG,欢迎各位感兴趣的开发者加入共建。

高性能存储技术 SIG 主页:

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

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。

16.png

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
3天前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
18 4
|
9天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
1月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
99 5
|
1月前
|
缓存 监控 算法
软件测试中的性能瓶颈分析与优化策略
【10月更文挑战第6天】 性能测试是确保软件系统在高负载条件下稳定运行的重要手段。本文将深入探讨性能测试的常见瓶颈,包括硬件资源、网络延迟和代码效率等问题。通过具体案例分析,我们将展示如何识别并解决这些问题,从而提升软件的整体性能。最后,文章还将分享一些实用的性能优化技巧,帮助读者在日常开发和测试中更好地应对性能挑战。
82 3
|
2月前
|
监控 测试技术 持续交付
软件测试中的性能瓶颈分析与优化策略
性能瓶颈,如同潜伏于软件深处的隐形障碍,悄然阻碍着系统的流畅运行。本文旨在揭示这些瓶颈的形成机理,剖析其背后的复杂成因,并汇聚一系列针对性的优化策略,为软件开发者提供一套系统性的解决方案。
50 5
|
1月前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
134 56
|
9天前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
23 3
|
1月前
|
缓存 监控 测试技术
软件测试中的性能瓶颈分析与优化策略
本文深入探讨了在软件测试过程中,如何有效地识别和解决性能瓶颈问题。通过对性能瓶颈的定义、分类以及常见原因的分析,结合实际案例,提出了一系列针对性的优化策略和方法。这些策略旨在帮助测试人员和开发人员提高软件的性能表现,确保软件在高负载条件下依然能够稳定运行。
|
5月前
|
监控 测试技术 UED
软件测试中的性能瓶颈定位与优化策略
在软件开发的生命周期中,性能测试是确保产品质量的关键步骤之一。本文深入探讨了性能测试的重要性,并提出了一套系统的性能瓶颈定位与优化策略。通过分析现代软件系统中常见的性能问题,结合最新的研究成果和行业最佳实践,文章详细介绍了如何运用科学严谨的方法来识别和解决性能瓶颈。此外,本文还强调了逻辑严密的问题分析框架和数据驱动的决策过程对于提升软件性能的重要性。
|
2月前
|
监控 算法 测试技术
软件测试中的性能瓶颈分析与优化策略
本文旨在深入探讨软件测试过程中性能瓶颈的识别与优化方法。通过对性能瓶颈的概念、分类及其成因进行分析,结合实际案例,提出一套系统的性能瓶颈诊断流程和针对性的优化策略。文章首先概述了性能瓶颈的基本特征,随后详细介绍了内存泄漏、资源竞争、算法效率低下等常见瓶颈类型,并阐述了如何通过代码审查、性能监测工具以及负载测试等手段有效定位问题。最后,结合最佳实践,讨论了代码级优化、系统配置调整、架构改进等多方面的解决措施,旨在为软件开发和测试人员提供实用的性能优化指导。
72 4

热门文章

最新文章