
openEuler SDS SIGARM架构下Ceph性能优化的5个黄金法则【免费下载链接】sds_docsds_doc is used to manage the technical documentation of the SDS sig项目地址: https://gitcode.com/openeuler/sds_doc前往项目官网免费下载https://ar.openeuler.org/ar/openEuler SDS SIGStorage Defined Storage Special Interest Group致力于为开源社区提供高性能、高可靠的存储解决方案。在ARM架构下部署Ceph分布式存储系统时通过优化配置和代码调优可以显著提升性能表现。本文将分享5个经过实践验证的黄金法则帮助您在ARM平台上充分发挥Ceph的存储能力。一、优化64K内核页配置提升内存利用率ARM架构默认采用64K内核页大小相比x86平台的4K页能减少页表条目数并提升TLB命中率。但需注意内存分配粒度增大带来的潜在问题内存浪费风险部分应用按页对齐申请内存却未充分利用导致实际缓存数据量减少。例如Ceph元数据缓存中存在因页对齐导致的内存浪费问题可通过修改内存分配逻辑优化参考Ceph PR#38701。内存释放问题tcmalloc内存管理库默认8K页大小与64K内核页不匹配时会导致内存无法归还给操作系统。解决方案包括将tcmalloc页大小配置为内核页的整数倍或修改内存释放逻辑参考gperftools PR#1201。图1优化内核页配置前后的Ceph性能对比数据二、加速编译流程缩短开发验证周期Ceph源码量大且依赖复杂ARM平台编译耗时较长。通过以下方法可将全量编译时间从30分钟以上降至10分钟以内并行编译优化第三方库编译do_cmake.sh -DBOOST_J64增加Boost/rocksdb编译线程RPM构建配置修改rpmmacros和ceph.spec中的并发参数根据CPU核心数动态调整编译线程编译缓存技术部署ccache缓存编译结果设置合理缓存大小建议5G以上配置示例export CCACHE_DIR/SSD/ccache ccache -o max_size5.0G分布式编译使用distcc实现多节点协同编译通过pump make -jxxx模式提升头文件处理效率图2采用ccache和分布式编译后的性能提升效果三、优化RocksDB存储引擎提升IO性能Ceph OSD使用RocksDB存储元数据针对ARM架构特点优化RocksDB配置可显著提升性能内存配置根据ARM服务器内存容量调整rocksdb_cache_size建议设置为物理内存的15-20%压缩算法选择适合ARM架构的压缩算法如zstd替代默认snappy以获得更好的压缩比IO调度配置适合SSD的IO调度策略如deadline或none针对NVMe设备相关优化指南可参考文档./ceph/1 - 性能优化/osd中的rocksdb调优指南 池信泽(XSKY).md四、网络优化NVMe over RoCE配置针对ARM平台的网络存储场景采用NVMe over RoCE技术可大幅降低网络延迟区域化配置将存储设备按Zone划分实现单点配置全网同步即插即用通过RoCE网络实现存储设备的快速发现和配置硬件加速利用ARM平台的硬件加速器提升网络处理性能图3传统以太存储网络与NVMe over RoCE增强网络架构对比配置示例可参考./spdk/ceph-nvmeof-gw/Ceph SPDK NVMe-oF Gateway Evaluation on openEuler on openEuler.pdf中的最佳实践。五、硬件加速使能释放ARM算力openEuler SDS SIG提供了针对鲲鹏等ARM处理器的硬件加速方案国密算法加速使能CEPH的国密算法支持提升数据加密性能参考./ceph/2 - 硬件加速/ceph国密使能.md鲲鹏硬件加速配置鲲鹏处理器的专用加速器优化存储数据处理流程参考./ceph/2 - 硬件加速/鲲鹏硬件加速器ceph使能指南.md编译优化针对ARM架构特性调整编译选项如使用-marcharmv8.2-a启用高级指令集总结通过以上五个黄金法则可在ARM架构下充分发挥Ceph分布式存储的性能潜力。这些优化方案已在openEuler社区经过实践验证适用于从开发测试到生产部署的全流程。更多技术细节和最新实践可关注SDS SIG的技术报告列表./ceph/技术报告列表.md。建议根据实际硬件环境和业务负载综合运用这些优化手段并通过持续监控如图1、图2所示的性能数据验证优化效果。如有疑问或需要进一步技术支持欢迎参与openEuler SDS SIG的双周例会会议纪要./minutes/2023双周例会会议纪要.md。【免费下载链接】sds_docsds_doc is used to manage the technical documentation of the SDS sig项目地址: https://gitcode.com/openeuler/sds_doc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考