当前位置:首页 > 科技  > 软件

Ceph - 每个 NVMe 推荐安装 1 个还是 2 个 OSD?

来源: 责编: 时间:2023-12-14 16:38:34 153观看
导读多年来我们遇到的最常见问题之一是用户是否应该在每个闪存驱动器上部署多个 OSD。这个问题比较复杂,因为随着Ceph的发展,这个问题的答案也在不停的变化。早在 Ceph Nautilus 时代,我们通常建议每个闪存驱动器部署2 个甚

多年来我们遇到的最常见问题之一是用户是否应该在每个闪存驱动器上部署多个 OSD。这个问题比较复杂,因为随着Ceph的发展,这个问题的答案也在不停的变化。早在 Ceph Nautilus 时代,我们通常建议每个闪存驱动器部署2 个甚至 4 个 OSD。当时在每个闪存设备部署多个 OSD 时,特别是在使用 NVMe 驱动器时,会具有很明显的性能优势。ybU28资讯网——每日最新资讯28at.com

但在 Octopus 和 Pacific 的发布周期中,这一问题的答案也开始发生变化。社区在 OSD 和 BlueStore 代码中引入了多项性能改进,极大地提高了每个 OSD 的性能。随着Pacific 版本的发布,我们也进行了各种测试,以确定我们的建议是否应该改变。ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

正如预期的那样,Octopus 和 Pacific 的速度明显快于 Nautilus,但与每个 NVMe 2 个 OSD 与 1 个 OSD 相比,也不再表现出一致的性能增益。一些测试仍然显示出一些增益,但其他测试则显示出轻微的损失。然而,这些测试的范围相当有限。 CPU 资源的可用性是否会改变结果?在性能或资源消耗方面还有其他优点或缺点吗?最后,自 Pacific 以来,我们不断改进 OSD 和 bluestore 代码。下面我们将进行详细验证下。ybU28资讯网——每日最新资讯28at.com

集群设置

NodesybU28资讯网——每日最新资讯28at.com

10 x Dell PowerEdge R6515ybU28资讯网——每日最新资讯28at.com

CPUybU28资讯网——每日最新资讯28at.com

1 x AMD EPYC 7742 64C/128TybU28资讯网——每日最新资讯28at.com

MemoryybU28资讯网——每日最新资讯28at.com

128GiB DDR4ybU28资讯网——每日最新资讯28at.com

NetworkybU28资讯网——每日最新资讯28at.com

1 x 100GbE Mellanox ConnectX-6ybU28资讯网——每日最新资讯28at.com

NVMeybU28资讯网——每日最新资讯28at.com

6 x 4TB Samsung PM983ybU28资讯网——每日最新资讯28at.com

OS VersionybU28资讯网——每日最新资讯28at.com

CentOS Stream release 8ybU28资讯网——每日最新资讯28at.com

Ceph VersionybU28资讯网——每日最新资讯28at.com

Reef v18.2.0 (built from source)ybU28资讯网——每日最新资讯28at.com

其中 5 个节点被配置为托管 OSD,其中 5 个节点被配置为客户端节点。所有节点都位于同一台 Juniper QFX5200 交换机上,并通过单个 100GbE QSFP28 链路进行连接。使用 CBT 部署了 Ceph 并启动了 FIO 测试。英特尔系统上一个重要的操作系统级别优化是将 TuneD 配置文件设置为“延迟性能”或“网络延迟”。这主要有助于避免与 CPU C/P 状态转换相关的延迟峰值。基于 AMD Rome 的系统在这方面似乎并不那么敏感,而且我还没有确认 TuneD 实际上限制了 AMD 处理器上的 C/P 状态转换。尽管如此,对于这些测试,TuneD 配置文件仍设置为“网络延迟”。ybU28资讯网——每日最新资讯28at.com

测试设置

安装 Ceph 并配置CBT。通常,在测试 Ceph 时,通常会考虑内核数量和分配给每个 OSD 的内存。然而,在此测试中,最好考虑每个 NVMe 驱动器有多少 CPU 和内存可用。这些系统中的每一个都可以轻松支持每个 NVMe 驱动器 16GB 内存,并且每个 NVMe 最多可以扩展至 20 个 CPU 线程。为了保持正确的内存比率, osd_memory_target 在 1 OSD/NVMe 情况下设置为 16GB,在 2 OSD/NVMe 情况下设置为 8GB。 Numactl 用于控制每个 OSD 的 CPU 线程数。 OSD 被分配给两个“处理器”池,试图同时扩展物理核心和 HT 核心。为此,使用以下 bash 单行代码生成处理器到物理核心的映射:ybU28资讯网——每日最新资讯28at.com

paste <(cat /proc/cpuinfo | grep "core id") <(cat /proc/cpuinfo | grep "processor") | sed 's/[[:blank:]]/ /g'

这表明处理器 0-63 对应于物理核心,处理器 64-127 对应于 HT 核心。接下来,调用 numactl 来利用相同数量的物理处理器和 HT 处理器(在本文中,我们通常将其称为 CPU 线程)。例如,要将 OSD 分配给由 12 个物理核心和 12 个 HT 核心组成的池(总共 24 个 cpu 线程,或每个 NVMe 4 个线程),则调用 OSD:ybU28资讯网——每日最新资讯28at.com

...numactl --physcpubind=0-12,64-76 /usr/local/bin/ceph-osd

每个 NVMe 驱动器使用 2 到 20 个 CPU 线程进行测试。 FIO 配置为首先使用大量写入预填充 RBD 卷,然后分别进行 60 秒的 4MB 和 4KB IO 测试。某些后台进程(例如清理、深度清理、PG 自动缩放和 PG 平衡)被禁用。使用具有静态 16384 PG(高于通常建议的值)和 3 倍复制的 RBD 池。ybU28资讯网——每日最新资讯28at.com

4MB吞吐量

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

当开始此测试时,我们并没有预料到每个 NVMe 设备有多个 OSD 对于大型 IO 工作负载会产生显着的性能差异。对于读取,差异相当小,尽管 2 个 OSD 配置显示出相当一致的小优势。然而,对于写入,我们惊讶地发现与单个 OSD 配置相比,吞吐量出现适度下降,峰值为每个 NVMe 12 个 CPU 线程。ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

这些是短期运行的测试,但在每个 CPU 计数样本点重新创建集群,我们看到多个样本的明显趋势。该效果可能是真实的,并且似乎与我们在 Octopus 和 Pacific 中看到的行为相匹配,其中 2 OSD/NVMe 配置中的 4MB 写入吞吐量实际上较低。ybU28资讯网——每日最新资讯28at.com

4KB随机IOPS

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

借助 Nautilus,我们在 4KB 随机读取和随机写入测试中看到了 2 个 OSD/NVMe 的显着优势。在相同的硬件、相同的操作系统、相同的内核版本并运行完全相同的测试时,我们看到了 Octopus 和 Pacific 的不同行为。我们不再拥有可用于这些 Reef 测试的相同硬件或操作系统,但我们看到的行为看起来更接近我们在之前的测试平台上在 Pacific 中看到的情况。在每个 NVMe 驱动器上部署 2 个 OSD 并没有特别的 IOPS 优势,除非每个 NVMe 驱动器有 16 个或更多 CPU 线程。事实上,对于每个 NVMe 有 2-4 个 CPU 线程的部署,IOPS 会受到轻微影响。这次测试有几个直接的结论:ybU28资讯网——每日最新资讯28at.com

  • 使用默认调整时,OSD 的扩展范围不会超过每个 14-16 个 CPU 线程。
  • 在高 CPU 线程数下,随机读取比随机写入更能从多个 OSD 中受益。
  • 在 CPU 线程数较低的情况下,每个 NVMe 运行多个 OSD 会增加一定量的额外开销。

但 IOPS 并不是唯一需要考虑的因素。延迟怎么样?那么资源消耗呢?ybU28资讯网——每日最新资讯28at.com

4KB随机延迟

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

在这些测试中,我们有 50 个 fio 客户端进程运行,每个进程的 io_深度为 128。 Ceph 可以实现显着较低的平均延迟,但在这种情况下,我们使 OSD 饱和到完全受 CPU 限制的程度。在这种情况下,延迟与 IOPS 成正比。ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

平均延迟减少遵循与我们在 IOPS 中看到的类似模式。在每个 NVMe 有 2 个 OSD 的低 CPU 线程数下,平均延迟稍差(较高),但在 CPU 线程数非常高时,平均延迟明显更好(较低)。ybU28资讯网——每日最新资讯28at.com

4KB随机99%尾部延迟

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

到目前为止,我们还没有看到强有力的证据表明,除非 CPU 线程比率非常高,否则每个 NVMe 部署多个 OSD 具有显着优势。但在一种情况下,我们仍然看到了显着的优势。在几乎所有情况下,每个 NVMe 运行多个 OSD 都能一致地减少尾部延迟。ybU28资讯网——每日最新资讯28at.com

99% Tail 延迟的改善非常显着,在某些情况下,每个 NVMe 运行 2 个 OSD 可将 99% 延迟减少一半。虽然此处未显示,但 99.9% 延迟的改进甚至更好。虽然对于每个 NVMe 运行多个 OSD 的大多数 Reef 部署可能不会表现出显着的性能优势,但它可能会表现出显着的尾部延迟优势。但是……有代价吗?ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

4KB随机CPU使用率

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

尽管通过 numactl 将 OSD 限制为仅使用一定数量的 CPU 线程,但每个 NVMe 配置 2 个 OSD 始终比每个 NVMe 1 个 OSD 的情况使用更多的 CPU。让我们进一步看看这如何转化为 CPU 效率。ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

我们之前看到,两种 OSD 配置在最多 16 个 CPU 线程时表现相似。此后,每个 NVMe 配置的 2 个 OSD 继续扩展,而单个 OSD 配置则达到顶峰。我们还发现,每个 NVMe 配置 2 个 OSD 的尾部延迟显着降低。在这里,我们看到每个 CPU 线程在每个 NVMe 配置的 2 个 OSD 中更加努力地工作,以实现相同的 IOPS,尽管还有其他优势。这可能会导致更高的功耗和更多的热量产生。需要注意的是:此处报告的随机写入结果将复制因素纳入其中,以与我们去年秋天在这里发布的太平洋地区结果相匹配。虽然测试配置与去年秋天并不完全相同,但看来我们在这些 Reef 测试中实现了适度的效率改进。ybU28资讯网——每日最新资讯28at.com

4KB随机内存使用

虽然每个 NVMe 案例的 2 个 OSD 中的 CPU 使用率显着增加,但内存使用率的增加相对较小。通常,与每个 NVMe 使用 1 个 OSD 相比,会有大约 3-6% 的损失。两种配置均未使用此数据集大小的 OSD 可用的全部内存量。ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

图片图片ybU28资讯网——每日最新资讯28at.com

结论

之前我们看到,在 Ceph 的 Nautilus 版本和 Pacific 版本之间,每个 NVMe 使用多个 OSD 的性能优势发生了显着变化。现在 Reef 已经发布,我们进行了更广泛的分析,并注意到我们的测试系统的一些细微的优点和缺点:ybU28资讯网——每日最新资讯28at.com

1 OSD per NVMe ProsybU28资讯网——每日最新资讯28at.com

2 OSDs per NVMe ProsybU28资讯网——每日最新资讯28at.com

+ Simpler ConfigurationybU28资讯网——每日最新资讯28at.com

+ Slightly Better Large Read ThroughputybU28资讯网——每日最新资讯28at.com

+ Better Large Write ThroughputybU28资讯网——每日最新资讯28at.com

+ Better IOPS when Very CPU DenseybU28资讯网——每日最新资讯28at.com

+ Slightly Better IOPS when CPU StarvedybU28资讯网——每日最新资讯28at.com

+ Better Latency when Very CPU DenseybU28资讯网——每日最新资讯28at.com

+ Better CPU EfficiencyybU28资讯网——每日最新资讯28at.com

+ Significantly Better Tail LatencyybU28资讯网——每日最新资讯28at.com

+ Slightly Better Memory UsageybU28资讯网——每日最新资讯28at.com


ybU28资讯网——每日最新资讯28at.com

其他硬件配置可能会根据 CPU、闪存或其他性能特征显示不同的缩放行为。不过,我相信这些结果应该可以概括地说明在现代 Ceph 版本中每个 NVMe 配置运行 2 个 OSD 的潜在优点和缺点。与往常一样,最好的了解方法是测试一下自己,看看您的发现是否与我们在这里看到的相符。感谢您的阅读,如果您有任何疑问或想更多地讨论 Ceph 性能,请随时与我们联系。ybU28资讯网——每日最新资讯28at.com

原文: https://ceph.io/en/news/blog/2023/reef-osds-per-nvme/ybU28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-45503-0.htmlCeph - 每个 NVMe 推荐安装 1 个还是 2 个 OSD?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 使用 Go 构建高性能的事件管理器

下一篇: 死磕Java并发 | 常用并发原子类详解

标签:
  • 热门焦点
  • 5月iOS设备性能榜:M1 M2依旧是榜单前五

    5月iOS设备性能榜:M1 M2依旧是榜单前五

    和上个月一样,没有新品发布的iOS设备性能榜的上榜设备并没有什么更替,仅仅只有跑分变化而产生的排名变动,刚刚开始的苹果WWDC2023,推出的产品也依旧是新款Mac Pro、新款Mac Stu
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • Flowable工作流引擎的科普与实践

    Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 一篇文章带你了解 CSS 属性选择器

    一篇文章带你了解 CSS 属性选择器

    属性选择器对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。一、了解属性选择器CSS属性选择器提供了一种简单而
  • 得物宠物生意「狂飙」,发力“它经济”

    得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的&ldquo;在线鉴别&rdquo;,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。&ldquo;提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 由于成本持续增加,笔记本产品价格预计将明显上涨

    由于成本持续增加,笔记本产品价格预计将明显上涨

    根据知情人士透露,由于材料、物流等成本持续增加,笔记本产品价格预计将在2021年下半年有明显上涨。进入6月下旬以来,全球半导体芯片缺货情况加剧,显卡、处理器
  • 世界人工智能大会国际日开幕式活动在世博展览馆开启

    世界人工智能大会国际日开幕式活动在世博展览馆开启

    30日上午,世界人工智能大会国际日开幕式活动在世博展览馆开启,聚集国际城市代表、重量级院士专家、国际创新企业代表,共同打造人工智能交流平台。上海市副市
  • “买真退假” 这种“羊毛”不能薅

    “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主&ldquo;七王&rdquo;在群里介绍一些刷单赚
Top