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

Ceph 使用 NVME 是否可以实现 10k 混合 IOPS ?

来源: 责编: 时间:2023-09-20 21:54:32 426观看
导读最近,ceph subreddit上的一位用户提了一个问题:在一个由 6 个节点组成,每个节点有 2 个 4GB FireCuda NVMe 磁盘的集群中,Ceph是否可以为单个客户端提供10K IOPs的组合随机读/写能力。该用户也想知道是否有人对类似的场景

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

最近,ceph subreddit上的一位用户提了一个问题:在一个由 6 个节点组成,每个节点有 2 个 4GB FireCuda NVMe 磁盘的集群中,Ceph是否可以为单个客户端提供10K IOPs的组合随机读/写能力。该用户也想知道是否有人对类似的场景进行过测试并希望能够共享一下测试结果。在 Clyso 项目组中,我们一直在积极努力改进 Ceph 代码以实现更高的性能。我们有自己的测试和配置来评估我们对代码的更改。正好,我们当前有可以匹配该用户测试场景的硬件环境。因此,我们决定花些时间来进行测试以及验证。SYZ28资讯网——每日最新资讯28at.com

用户环境配置

用户的环境包含6个节点,每个节点都有2个4TB希捷FireCuda NVMe驱动器和64GB内存。关于CPU或网络,当前没有明确的信息。但两者都对这次测试可能很重要。因此,我们使用如下的 fio 命令来实现这一需求:SYZ28资讯网——每日最新资讯28at.com

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=150G --readwrite=randrw --rwmixread=75

虽然我们的实验室中没有FireCuda驱动器,但我们确实有节点具有多个4TB三星PM983驱动器和每个128GB内存。SYZ28资讯网——每日最新资讯28at.com

群集配置

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

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

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

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

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

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

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

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

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

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

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

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

Ceph Version 1
SYZ28资讯网——每日最新资讯28at.com

Pacific v16.2.13 (built from source)
SYZ28资讯网——每日最新资讯28at.com

Ceph Version 2
SYZ28资讯网——每日最新资讯28at.com

Quincy v17.2.6 (built from source)
SYZ28资讯网——每日最新资讯28at.com

Ceph Version 3
SYZ28资讯网——每日最新资讯28at.com

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

为了尽可能匹配用户的环境,我们只使用了集群中的 6 个节点,其中 2 个 OSD 在单个 NVMe 驱动器上运行,每个 OSD 用于 Ceph。其余节点用作客户端节点。所有节点都位于同一Juniper QFX5200 交换机上,并通过单个 100GbE QSFP28 连接。SYZ28资讯网——每日最新资讯28at.com

下面将先部署好 Ceph,并使用 CBT 启动 FIO 测试。基于Intel的系统上一项重要的操作系统级别优化是将 TuneD 配置文件设置为“延迟性能”或“网络延迟”。这主要有助于避免与 CPU C/P 状态转换相关的延迟峰值。基于AMD的系统在这方面并没有太大效果,目前还没有确认调优是否限制了C/P状态转换,但是对于这些测试,调优后的配置文件仍然设置为“网络延迟”。SYZ28资讯网——每日最新资讯28at.com

测试设置

用户的环境包含6个节点,每个节点都有2个4TB希捷SYZ28资讯网——每日最新资讯28at.com

CBT 需要修改几个配置,而不使用是默认的配置来部署 Ceph。每个 OSD 分配 8GB 内存(这是合理的,因为用户的节点有 64GB 内存用于 2 个 OSD)。RBD 卷与 Msgr V1 配合一起使用,并且 cephx 被禁用。SYZ28资讯网——每日最新资讯28at.com

FIO 会先用大写入预填充 RBD 卷,然后进行用户的随机读/写测试。某些后台进程(如scrub, deep scrub, pg autoscaling, 以及 pg balancing)已禁用。PG 以及 PGP 设置为4096 (高于通常推荐的)和 3 副本的 RBD 池。用户仅请求单个 FIO 卷和使用单个 150GB 文件的测试。我们按照要求对此进行了测试,但为了让集群处于负载状态,还运行了 16 个独立的 FIO 进程的测试,这些进程写入分布在 4 个客户端节点上的专用 RBD 卷,每个卷都有一个 16GB 的文件。 为了保证与用户的FIO设置一致,必须将 gtod_reduce 选项的支持添加到cbt的FIO基准测试工具中。 gtod_reduce 可以通过显著减少 FIO 必须进行的 getTimeOfDay(2) 调用次数来提高性能, 但它也禁用了某些功能, 例如在测试期间收集操作延迟信息。为了评估影响,我们在启用和禁用的情况下 gtod_reduce运行了测试:SYZ28资讯网——每日最新资讯28at.com

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

据结果,我们决定保持 gtod_reduce 禁用状态,以便我们也可以观察延迟数据。请注意,启用此 FIO 选项可以提高大约 3-4%性能。除此之外,所有其他选项要么在CBT中可用,要么在FIO中已经默认。CBT YAML 文件的基准测试部分包含单客户端测试的配置内容如下:SYZ28资讯网——每日最新资讯28at.com

benchmarks:  fio:    client_endpoints: 'fiotest'    op_size: [4096]    iodepth: [64]    size: 153600 # data set size per fio instance in KB    mode: ['randrw']    rwmixread: 75     procs_per_endpoint: [1]    osd_ra: [4096]    log_avg_msec: 100    cmd_path: '/usr/local/bin/fio'

最终,我们实现了与用户类似的FIO测试案例,但还有一些差异,主要与在测试过程中记录iops/延迟数据有关:SYZ28资讯网——每日最新资讯28at.com

fio --ioengine=libaio --direct=1 --bs=4096 --iodepth=64 --rw=randrw --rwmixread=75 --rwmixwrite=25 --size=153600M --numjobs=1 --name=/tmp/cbt/mnt/cbt-rbd-kernel/0/`hostname -f`-0-0 --write_iops_log=/tmp/cbt/00000000/Fio/output.0 --write_bw_log=/tmp/cbt/00000000/Fio/output.0 --write_lat_log=/tmp/cbt/00000000/Fio/output.0 --log_avg_msec=100 --output-format=json,normal > /tmp/cbt/00000000/Fio/output.0

单客户端和多客户端IOPS

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

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

Ceph 不仅能够在这种混合工作负载中实现 10K IOPS,而且在单个客户端测试中速度提高了一个数量级。针对这个小型 12 OSD 集群,我们从单个客户端实现了大约 92K 的随机读取和 31K 的随机写入 IOPS。SYZ28资讯网——每日最新资讯28at.com

另外,我们也运行多客户端测试的原因是为了展示这个小集群在为其他客户端提供服务时有多少空间。在相同的混合工作负载和 16 个客户端下,我们仅用 12 个支持 NVMe 的 OSD 就实现了超过 500K 的随机读取和大约 170K 的随机写入 IOPS。在多客户端测试中,Qunicy 和 Reef 的性能优势分别比 Pacific 高出大约 6% 和 9%。启用gtod_reduce可将 性能再提高 3-4%。SYZ28资讯网——每日最新资讯28at.com

单客户端和多客户端CPU使用率

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

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

根据以往的测试,我们可以发现一个明显的问题:CPU不足导致NVME的性能无法充分发挥。为了满足单个客户端工作负载,每个 OSD 大约消耗 3-4 个 AMD EPYC 内核。为了满足多客户端工作负载的需求,每个 OSD 消耗大量 11-12 个内核!IE 即使每个节点只有 2 个 OSD,每个节点也需要一个 24 核 EPYC 处理器才能实现这些驱动器的最大性能。更快的驱动器可能需要更大/更快的处理器。什么进程使用了所有这些 CPU? 在以前的文章中,我们得出过如下的结论:SYZ28资讯网——每日最新资讯28at.com

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

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

OSD Worker Threads
SYZ28资讯网——每日最新资讯28at.com

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

Async Messenger Threads
SYZ28资讯网——每日最新资讯28at.com

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

Bluestore KV Sync Thread
SYZ28资讯网——每日最新资讯28at.com

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

Bluster "Finisher" Thread
SYZ28资讯网——每日最新资讯28at.com

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

在某些情况下,RocksDB 压缩线程也会定期使用 CPU 资源。BlueStore KV Sync 线程很容易成为小型随机写入的瓶颈,尤其是在使用较低性能的 CPU 时。但是,总体 CPU 消耗主要是在 OSD 工作线程和异步信使线程中完成的工作的结果。这是 crc 检查、编码/解码、内存分配等的组合。SYZ28资讯网——每日最新资讯28at.com

单客户端和多客户端cycles/OP

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

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

由于cycles/OP 解析代码中的错误,先前的cycles/OP 计数显着增加。这使得 OSD 的效率似乎比实际要低得多。因此,我们计算性能指标的时候,需要使用聚合平均 CPU 消耗和 IOPS 而不是聚合周期和 OPS ,校正后的数值已被验证在预期的 ~14-17% 以内。我们认为,剩余的差异主要是由于cpu速度随时间的变化,以及 collectl 报告的 CPU 消耗方式。SYZ28资讯网——每日最新资讯28at.com

在单客户端和多客户端测试中,性能似乎略有提高。另外,在多客户端测试中,我们发现在高负载下处理数据的效率要高得多,而在单客户端测试中,我们在低负载下处理数据的效率要高得多。SYZ28资讯网——每日最新资讯28at.com

为什么会这样呢?在上一节中,我们讨论了 OSD 中的大部分工作如何由 OSD 工作线程和异步信使线程完成。当 OSD 收到新 IO 时,首先由与相应网络连接关联的异步信使线程处理并移动到用户空间中。然后将其放入给定 OSD 分片的计划程序工作队列中。如果队列之前为空,则与该分片关联的所有线程都会唤醒,并且在分片的工作队列为空之前不会返回睡眠状态。当只有 1 个客户端执行 IO 时,集群上的负载会明显减少,并且每个分片的队列通常会在短时间内为空。线程会不断唤醒并重新进入睡眠状态。当群集负载较重时,队列更有可能有工作要做,因此线程花费更少的睡眠和唤醒时间。相反,他们花更多的时间做实际工作。SYZ28资讯网——每日最新资讯28at.com

单客户端和多客户端平均延迟

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

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

在单客户端测试中,Ceph 能够保持亚毫秒级的平均读取和写入延迟。在多客户端测试中,我们看到了Pacific,Quincy和Reef之间的不同行为。Pacific的读取延迟最低,写入延迟最高,而Reef的读取延迟略有增加,但写入延迟显着降低。Quincy的介于两者之间,但更接近Reef而不是Pacific。SYZ28资讯网——每日最新资讯28at.com

单客户端和多客户端99.9%延迟

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

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

正如预期的那样,99.9% 的延迟略高。我们可以实现不到 1.3 毫秒的读取和大约 2.1-2.3 毫秒的写入,具体取决于版本。多客户端测试中的尾部延迟明显更高,但是在此测试中,Quincy 尤其是 Reef 的写入尾部延迟明显低于 Pacific。SYZ28资讯网——每日最新资讯28at.com

结论

那么我们最后是怎么做的呢?目标是在这个混合读/写 FIO 工作负载中达到 10K IOPS,读取率为 75%,写入率为 25%。我假设这意味着目标是 7500 个读取 IOPS 和 2500 个写入 IOPS。让我们比较一下我们是如何做到的:SYZ28资讯网——每日最新资讯28at.com

Single-Client IOPS: 单客户端 IOPS:SYZ28资讯网——每日最新资讯28at.com

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

Read Goal
SYZ28资讯网——每日最新资讯28at.com

Read IOPS
SYZ28资讯网——每日最新资讯28at.com

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

Write Goal
SYZ28资讯网——每日最新资讯28at.com

Write IOPS
SYZ28资讯网——每日最新资讯28at.com

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

v16.2.13
SYZ28资讯网——每日最新资讯28at.com

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

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

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

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

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

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

v17.2.6
SYZ28资讯网——每日最新资讯28at.com

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

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

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

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

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

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

v18.1.0
SYZ28资讯网——每日最新资讯28at.com

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

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

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

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

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

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

多客户端 IOPS:SYZ28资讯网——每日最新资讯28at.com

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

Read Goal
SYZ28资讯网——每日最新资讯28at.com

Read IOPS
SYZ28资讯网——每日最新资讯28at.com

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

Write Goal
SYZ28资讯网——每日最新资讯28at.com

Write IOPS
SYZ28资讯网——每日最新资讯28at.com

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

v16.2.13
SYZ28资讯网——每日最新资讯28at.com

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

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

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

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

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

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

v17.2.6
SYZ28资讯网——每日最新资讯28at.com

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

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

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

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

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

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

v18.1.0
SYZ28资讯网——每日最新资讯28at.com

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

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

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

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

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

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

目前,我们完成了所有的测试,同时也满足了要求!另外,如果使用更快的 NVMe 驱动器,结果应该可以进一步改善。SYZ28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-10633-0.htmlCeph 使用 NVME 是否可以实现 10k 混合 IOPS ?

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

上一篇: 数据组合利器:从入门到精通Python中的zip()函数应用

下一篇: 被难倒了! 针对高级前端的八个级JavaScript面试问题

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 石头智能洗地机A10 Plus体验:双向自清洁治好了我的懒癌

    一、前言和介绍专为家庭请假懒人而生的石头科技在近日又带来了自己的全新旗舰新品,石头智能洗地机A10 Plus。从这个产品名上就不难看出,这次石头推出的并不是常见的扫地机器
  • Raft算法:保障分布式系统共识的稳健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可复制、可冗余、可容错”)的首字母缩写。Raft算法是一种用于在分布式系统
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • OPPO K11采用全方位护眼屏:三大护眼能力减轻视觉疲劳

    日前OPPO官方宣布,全新的OPPO K11将于7月25日正式发布,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼IMX890主摄,堪称是2000档位影像表
  • Counterpoint :OPPO双旗舰战略全面落地 高端产品销量增长22%

    2023年6月30日,全球行业分析机构Counterpoint Research发布的《中国智能手机高端市场白皮书》显示,中国智能手机品牌正在寻求高质量发展,中国高端智能
  • SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘是西部数据发布的最新一代WD Blue系列的固态硬盘,不仅闪存技术更为精进,性能也得到了进一步的跃升。WD Blue SN570 NVMe SSD的包装外
Top