第二部分:使用 BlueStore 后端的全闪存集群上的 Ceph 块存储性能
简介 ¶
回顾:在 博客文章-1 中,我们介绍了 RHCS、BlueStore 介绍、实验室硬件详细信息、基准测试方法以及默认 Ceph 配置与调整后的 Ceph 配置之间的性能比较
这是关于运行在全闪存集群上的 RHCS 3.2 BlueStore 的性能博客系列的第二部分。将块大小划分为小、中、大类并没有明确的规则。因此,我们将 4K 定义为小块大小类别,8K-64K 定义为中等类别,1M-4M 定义为大类别。在本集中,您将了解 Ceph 块存储在小 (4K)、中 (8K-32K) 和大 (1M-4M) 块大小下,在随机读、随机写和随机读写工作负载模式下的性能特征。
执行摘要 ¶
- 小块 4K 工作负载,提供高达 220 万的随机读取、69.1 万的随机读写 (70/30) 以及 46.3 万的随机写入 IOPS,直到受到 CPU 和介质争用的限制。
- 与小块工作负载类似,中块性能也受到 CPU 和介质争用的限制。
- 大块 4M 工作负载的峰值性能记录为 10.9 GB/s,适用于随机读、写和读写 (70/30) 混合模式,直到受到客户端网络带宽的限制。
第一部分:小块大小 (4KB) 性能 ¶
关键要点 ¶
- 随机读取工作负载显示 220 万 IOPS@3ms 平均延迟,直到受到介质饱和的限制。
- 随机读写 (70/30) 混合工作负载显示 69.1 万 IOPS@6ms 平均延迟,直到受到 Ceph 节点 CPU 资源争用的限制。
- 随机写入:46.3 万 IOPS@11ms 平均延迟,直到受到 Ceph 节点 CPU 资源争用的限制。
总结 ¶
在本测试部分中,使用小块大小 (4KB) 工作负载对 Ceph 块存储接口进行了随机读、随机写和随机读写 (70/30) 混合模式的测试。测试期间捕获的关键指标包括 IOPS、平均延迟、Ceph 节点 CPU 和介质利用率。
图 1 显示了使用 5 个全闪存节点进行 4K 块大小的各种访问模式的顶级性能。因此,发现最大性能为
- 随机读取: 220 万 IOPS@ 3ms 平均延迟
- 随机读写 (70/30) 混合: 69.1 万 IOPS @6ms 平均延迟
- 随机写入: 46.3 万 IOPS@11ms 平均延迟

图 1
_h_图 2 和图 3 中捕获的 CPU 和介质利用率帮助我们了解了不同工作负载模式下的瓶颈。
- 发现随机读取性能受到 CPU 资源争用的限制,但是,介质利用率也较高。因此,如果我们添加了额外的 Ceph 节点(CPU 和介质),随机读取性能可能会更高。
- 对于随机写入和随机读写 (70/30) 混合,性能受到更高的 CPU 消耗的限制。有趣的是,同时介质有足够的剩余吞吐量,由于缺乏计算能力而未被使用。因此,将更高的 CPU 核心分配给 Ceph OSD 可以为随机写入和随机读写混合工作负载提供更高的性能。
OSD 数据设备 (P4500 NVMe) 的利用率保持在 50% 以下,托管 BlueStore WAL 和 Rocksdb 元数据的 Intel Optane P4800 设备被发现非常繁忙@90%。bluestore_min_alloc_size_ssd 参数设置为 16KB,因此所有小于 16KB 的写入都会被推迟,写入首先进入 WAL 设备,然后异步写入 OSD 数据,因此 Optane P4800 设备吸收了所有 OSD 的写入。尽管 RocksDB/WAL 设备利用率很高,但我们没有看到 P4500 OSD 数据设备上的任何争用迹象。但是,根据此经验,我们不建议将超过 7 个 P4500 NVMe 设备置于单个 Intel Optane P4800 后面用于 WAL/RocksDB。

图 2
图 2

图 3
图 3
我们运行的另一个有趣的测试是客户端扫描测试,从 20 个开始,一直到 140 个线性扩展客户端数量。随着我们增加客户端负载,我们观察到性能线性提升,直到我们遇到 Ceph OSD 上的 CPU 拥塞。使用 100 个客户端,我们观察到 ~445K 聚合 4K 写入 IOPS。在此之后,系统资源拥塞导致高尾部延迟。用于元数据的 Intel Optane 有助于吸收具有大量并行客户端的延迟峰值,因此平均延迟保持在 40 毫秒以下。

图 4
G
第二部分:中块大小性能 ¶
关键要点 ¶
- 直到性能受到 CPU 和介质饱和的限制,5 个全闪存 Ceph 节点提供 ~180 万的随机读取、~63.6 万的随机读写 (70/30) 以及 ~41 万的随机写入 IOPS。
- 为了扩展性能,必须在现有的 Ceph 集群中添加额外的 Ceph OSD 节点。
摘要 ¶
在以下图中,我们尝试表示各种不同的数据点,例如 IOPS、平均延迟、尾部延迟、Ceph 节点 CPU 和介质利用率。所有这些都涵盖了从 4K 到 64K 的一系列块大小,用于随机写入、随机读取和随机读写 (70/30) 混合。
一些有趣的数据点包括
- 正如预期的那样,小块大小显示最高的 IOPS 和最低的平均和尾部延迟,与中块大小相比。因此,我们观察到随机读取、随机读写混合和随机写入工作负载分别为 ~180 万、~63.6 万和 ~41 万 IOPS。
- 在 Ceph OSD 节点上观察到 CPU 和介质的高利用率。发现利用率分别高达 ~90% 和 ~80% 的 CPU 和介质。因此,如果我们向现有的 Ceph 集群添加 Ceph OSD 节点,性能可能会提高。

图 5

图 6

图 7
G

图 8
第三部分:大块大小性能 ¶
关键要点 ¶
- 大块 4M 性能在随机读、写和读写 (70/30) 混合达到峰值 10.9 GB/s。
- 客户端网络被发现是限制因素,导致性能瓶颈。
- 如果拥有更多的客户端节点或更大的网络管道,性能可能会更高。
摘要 ¶
我们测试的所有不同模式,即随机读、写和读写 (70/30) 混合的大块大小 4M 工作负载,聚合吞吐量最高为 10.9 GB/s。客户端网络被发现是限制因素,导致性能瓶颈。除了网络之外,第二大利用率最高的资源是介质,但是,如果网络不是瓶颈,它有足够的余量来提供更高的性能。

图 9
G
接下来 ¶
继续基准测试博客系列,在 下一部分 中,将解释与 RHCS 3.2 可扩展性测试相关的结果。回答一些关键问题,例如“从 3 个节点集群到 5 个节点,性能如何变化”。敬请期待。