Ceph Autotune

Ceph 在默认配置下性能并非最佳。

问题描述

目前,我们在安装 Ceph 后不会进行任何调优。为了使 Ceph 达到最佳性能,需要调整许多小细节。

许多邮件列表消息显示用户对 Ceph 缓慢的性能感到沮丧。这个史诗任务的目标是捕捉那些容易实现的改进,以便每个人都能获得更好的 Ceph 使用体验。

提议的变更

我建议几个可以轻松改进的领域。

有几个领域可以改进,例如 HDD 预读和最大硬件扇区设置。我们还可以调整 10Gb 和 40Gb 网络的 sysctl 网络设置。

最后,我注意到在多插槽主板上的 IRQ 对齐并不理想。我们可以使用 numactl 将 IO 路径中所有组件的 IRQ(从网络到 OSD 再到磁盘)固定到特定的 CPU。

在所有更改中,IRQ 固定可能最具挑战性。

备选方案

实现

负责人

主要负责人

cholcombe973

Gerrit Topic

所有与此规范相关的补丁请使用 Gerrit 主题“performance-optimizations”。

git-review -t performance-optimizations

工作项

  1. HDD 预读设置:通常,存储服务器的 HDD 预读设置太小。

  2. 10/40Gb sysctl 设置:10Gb 和 40Gb 网络需要特殊的 sysctl 设置来提高其性能。

  3. HDD 最大硬件扇区:将最大硬件扇区设置为尽可能大,可以实现更大的顺序写入,从而提高性能。

  4. 多插槽主板上的 IRQ 对齐:在多插槽主板上,Linux 在对齐 IRQ 方面表现不佳,导致 CPU 之间频繁交换缓存内存。这会显著降低 Ceph 的性能。

仓库

此工作不需要新的 git 仓库。

文档

将对受影响的 charms 中的 README 文件进行更新,作为此更改的一部分。

安全性

没有额外的安全问题。

测试

代码更改将由单元测试覆盖;功能测试将使用 Mojo 规范完成。

依赖项

  • charm-layering