玩命加载中 . . .

S3 单一Bucket下写4K数据性能衰减验证


测试环境

测试环境信息

存储端

被测版本 v8.2-211 (a243210)
节点数 6 nodes,NJ Lab 技嘉4U36B设备
CPU node1~node3: Intel® Xeon® Gold 5118 CPU @ 2.30GHz
node4~node6: Intel® Xeon® Silver 4114 CPU @ 2.20GHz
Memory 256G(16G*16)
Disk 希捷 SATA 8T*36
Intel S4510 SSD: 240G*1
node1~node6: 威刚ADATA SR2000CP NVMe 4T*1
node1~node3: NVMe P4500/P4600 4T*1
Network QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller *2 Ports
Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection *2 Ports
集群信息 2块SATA盘组RAID0,每个node 18个OSD,一块ADATA NVME SSD作为OSD Journal&Cache,加入s3-data-pool
node1~node3,每个node的一块P4510/4610 NVME SSD作OSD,加入s3-index-pool
配置S3 placement, data pool选择s3-data-pool, index pool选择s3-index-pool
对metadata,s3-data-pool 和 s3-data-pool 启用PG split功能,并确保PG均衡
UI创建S3 账号,并创建bucket
参数调优部分,参考下文“参数调优”章节

说明:

​ 最初node1~node3上是两块ADATA NVME SSD,后来才和node4~node6互换SSD,对应测试章节为本文的“Lab最终测试”

客户端

​ 6台VM,CentOS7,走10G网络向存储端的6个radosgw 发起请求。

[root@centos-1 ~]# hostnamectl 
   Static hostname: centos-1
         Icon name: computer-vm
           Chassis: vm
        Machine ID: b398080741c04f70b049ebe588c5ffde
           Boot ID: e114313e62ff4e6b9e4d24a711d9ed82
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-693.el7.x86_64
      Architecture: x86-64

cosbench task config

内容参考如下:

<?xml version="1.0" encoding="UTF-8"?>
<workload name="5" description="1200million_4k_data_filling">
<storage type="s3" config="accesskey=YGWTYZEPDQVCPX44F6BA;secretkey=ze7bpgdY81wbHYehpzAaM2Y5RyO5rOh99YbH9NCj;endpoint=http://10.16.172.161/" />

  <workflow>
    <workstage name="1200million_4k_data_filling-init">
        <work name="1200million_4k_data_filling-init" type="init" workers="1" interval="10" division="container" runtime="0" rampup="0" rampdown="0" driver="driver1"  config="cprefix=bigtera;containers=r(1,1)" />
    </workstage>
    <workstage name="1200million_4k_data_filling-write">
        <work name="datafile-write1" type="write" workers="96" interval="10" division="object" totalOps="200000000" rampup="0" rampdown="0" driver="driver1">
            <auth type="none" config="" />
            <storage type="s3" config="accesskey=YGWTYZEPDQVCPX44F6BA;secretkey=ze7bpgdY81wbHYehpzAaM2Y5RyO5rOh99YbH9NCj;endpoint=http://10.16.172.161/" />
            <operation type="write" ratio="100" division="object" config="cprefix=bigtera;oprefix=4KB_;containers=s(1,1);objects=r(1,200000000);sizes=c(4)KB;createContainer=false;" id="none" />
        </work>
        <work name="datafile-write2" type="write" workers="96" interval="10" division="object" totalOps="200000000" rampup="0" rampdown="0" driver="driver2">
            <auth type="none" config="" />
            <storage type="s3" config="accesskey=YGWTYZEPDQVCPX44F6BA;secretkey=ze7bpgdY81wbHYehpzAaM2Y5RyO5rOh99YbH9NCj;endpoint=http://10.16.172.162/" />
            <operation type="write" ratio="100" division="object" config="cprefix=bigtera;oprefix=4KB_;containers=s(1,1);objects=r(200000001,400000000);sizes=c(4)KB;createContainer=false;" id="none" />
        </work>
        <work name="datafile-write3" type="write" workers="96" interval="10" division="object" totalOps="200000000" rampup="0" rampdown="0" driver="driver3">
            <auth type="none" config="" />
            <storage type="s3" config="accesskey=YGWTYZEPDQVCPX44F6BA;secretkey=ze7bpgdY81wbHYehpzAaM2Y5RyO5rOh99YbH9NCj;endpoint=http://10.16.172.163/" />
            <operation type="write" ratio="100" division="object" config="cprefix=bigtera;oprefix=4KB_;containers=s(1,1);objects=r(400000001,600000000);sizes=c(4)KB;createContainer=false;" id="none" />
        </work>
        <work name="datafile-write3" type="write" workers="96" interval="10" division="object" totalOps="200000000" rampup="0" rampdown="0" driver="driver4">
            <auth type="none" config="" />
            <storage type="s3" config="accesskey=YGWTYZEPDQVCPX44F6BA;secretkey=ze7bpgdY81wbHYehpzAaM2Y5RyO5rOh99YbH9NCj;endpoint=http://10.16.172.164/" />
            <operation type="write" ratio="100" division="object" config="cprefix=bigtera;oprefix=4KB_;containers=s(1,1);objects=r(600000001,800000000);sizes=c(4)KB;createContainer=false;" id="none" />
        </work>
        <work name="datafile-write3" type="write" workers="96" interval="10" division="object" totalOps="200000000" rampup="0" rampdown="0" driver="driver5">
            <auth type="none" config="" />
            <storage type="s3" config="accesskey=YGWTYZEPDQVCPX44F6BA;secretkey=ze7bpgdY81wbHYehpzAaM2Y5RyO5rOh99YbH9NCj;endpoint=http://10.16.172.165/" />
            <operation type="write" ratio="100" division="object" config="cprefix=bigtera;oprefix=4KB_;containers=s(1,1);objects=r(800000001,1000000000);sizes=c(4)KB;createContainer=false;" id="none" />
        </work>
        <work name="datafile-write3" type="write" workers="96" interval="10" division="object" totalOps="200000000" rampup="0" rampdown="0" driver="driver6">
            <auth type="none" config="" />
            <storage type="s3" config="accesskey=YGWTYZEPDQVCPX44F6BA;secretkey=ze7bpgdY81wbHYehpzAaM2Y5RyO5rOh99YbH9NCj;endpoint=http://10.16.172.166/" />
            <operation type="write" ratio="100" division="object" config="cprefix=bigtera;oprefix=4KB_;containers=s(1,1);objects=r(1000000001,1200000000);sizes=c(4)KB;createContainer=false;" id="none" />
        </work>
    </workstage>
    </workflow>

</workload>

参数调优

修改bucket shards,默认128,改成1000

radosgw-admin bucket reshard --bucket=bigtera1 --num-shards=1000

说明:

​ 此操作,请务必放在修改了s3 placement,并创建好bucket后再执行。

调整rgw相关参数

rgw ecsoc bundle shards = 512
rgw gc max objs = 32
rgw gc obj min wait = 300
rgw gc processor max_time = 300
rgw gc processor period = 300
rgw init timeout = 3000

调整bigterastore cache

默认100万,调整成1000万,尽量避免bigterastore flush cache

be_cache_max_objs = 10000000

说明:

​ 建议写入每个node的ceph.conf [osd]处;

​ 本文 EC 4+2 灌12亿对象场景,不调整此参数。

避免inode耗尽

ceph tell osd.* injectargs '--bigterastore_obj_meta_size 1024'

建议写入每个node的ceph.conf [osd]处。

PG相关

metadata pool 启用PG split,避免OSD数量过多(默认512 PG数太少)和 bucket中objects数量较多情况下出现osd metaata pool full,引发性能衰减;

s3-data-pool启用PG split;

确保metadata pool 和 s3-data-pool的PG分布是均衡的。

说明:

以本次测试环境为例,虽然产品有deamon /usr/local/bin/bt-pool-reweight-agent.py 来做reweight PG,但整个执行周期有些慢,迟迟没有调整好,所以手工干预了一下,操作步骤大致如下:

(1) ceph df 获取要调整的pool id # 主要是3个pool,一个是metadata pool,一个是s3 data pool 和s3 index pool

(2) 获取pool预期OSD PG分布crush信息 # 以metadata pool id=10为示例:

crush_reweight_tool -p 10 -o 10_crush.bin -t 1
ceph osd setcrushmap -i 10_crush.bin

上面是理想状态,-t 1表示每个OSD上分布的PG相差1,比如计算出来的每个OSD 分布的PG数平均值为150,预计调整后的状态是:有的OSD 分布的PG数是151,有的是150,有的是152;

如果-t 1中无法达到预期调整效果,特别是在现有PG分布非常不均衡状态下,放大这个数值,先从差值较大来做调整,然后缩小范围,示例如下:

crush_reweight_tool -p 10 -o 10_crush.bin -t 30;
ceph osd setcrushmap -i 10_crush.bin

apply下去后:

crush_reweight_tool -p 10 -o 10_crush.bin -t 10;
ceph osd setcrushmap -i 10_crush.bin

然后

crush_reweight_tool -p 10 -o 10_crush.bin -t 4;
ceph osd setcrushmap -i 10_crush.bin

crush_reweight_tool -p 10 -o 10_crush.bin -t 2;
ceph osd setcrushmap -i 10_crush.bin

crush_reweight_tool -p 10 -o 10_crush.bin -t 1;
ceph osd setcrushmap -i 10_crush.bin

类似上面的操作,如果-t 1达不到预计效果,终止调整。

3个Pool的PG调整好后,检查一下PG分布,确保没有问题,具体检查方法,请执行附件提供的脚本:pg_allocate.py,输出参考如下:

root@node166:~# ./pg_allocate.py 
dumped all

pool  : 1      10     11     12     13     2      3      4      5      6      7      8      9      | SUM
--------------------------------------------------------------------------------------------------------------

osd.0   5      153    115    2      0      2      7      3      3      21     18     8      3      | 340   
osd.1   5      153    115    8      0      4      4      5      5      26     14     7      2      | 348   
osd.2   5      153    113    5      0      3      2      4      5      27     17     6      3      | 343   
osd.3   3      153    113    5      0      3      8      8      5      13     34     5      3      | 353   
osd.4   3      152    114    4      0      1      12     6      7      19     16     6      5      | 345   
osd.5   5      152    115    5      0      2      6      4      2      20     22     3      9      | 345   
osd.6   4      150    115    4      0      2      5      5      3      23     27     5      6      | 349   
osd.7   5      152    113    4      0      3      11     8      7      22     13     7      5      | 350   
osd.8   1      151    114    1      0      4      5      2      7      17     27     1      6      | 336   
osd.9   3      152    115    1      0      7      5      6      5      12     16     2      4      | 328   
osd.10  4      150    113    6      0      4      4      5      3      17     12     7      6      | 331   
osd.11  4      150    115    3      0      5      2      4      9      22     15     0      4      | 333   
osd.12  2      153    114    5      0      6      8      4      6      18     20     3      3      | 342   
osd.13  6      151    115    4      0      7      4      5      5      18     26     8      6      | 355   
osd.14  7      153    113    4      0      3      2      7      2      19     14     9      6      | 339   
osd.15  6      152    114    2      0      7      5      4      6      20     16     11     6      | 349   
osd.16  7      151    113    5      0      3      1      5      3      16     15     4      7      | 330   
osd.17  2      152    113    13     0      7      8      9      3      21     17     4      3      | 352   
osd.18  6      151    112    6      0      4      4      3      3      25     22     2      3      | 341   
osd.19  6      152    113    2      0      3      9      4      5      21     11     1      4      | 331   
osd.20  3      152    112    7      0      7      5      6      5      18     21     5      3      | 344   
osd.21  4      150    114    3      0      5      1      5      3      18     14     4      5      | 326   
osd.22  7      150    114    3      0      5      9      7      3      14     18     4      7      | 341   
osd.23  9      152    115    9      0      4      5      2      6      17     7      5      3      | 334   
osd.24  6      152    114    6      0      4      5      4      2      17     16     6      4      | 336   
osd.25  3      150    112    5      0      4      5      0      6      18     13     5      6      | 327   
osd.26  3      153    113    5      0      3      5      4      4      20     31     3      6      | 350   
osd.27  6      150    113    4      0      4      8      5      6      19     22     3      10     | 350   
osd.28  1      153    113    0      0      4      4      2      3      11     14     7      5      | 317   
osd.29  7      153    113    9      0      7      4      3      3      34     19     5      4      | 361   
osd.30  3      151    114    10     0      7      5      5      2      11     35     4      10     | 357   
osd.31  3      150    115    1      0      5      7      9      2      17     17     5      3      | 334   
osd.32  2      152    114    2      0      5      4      5      4      19     18     7      5      | 337   
osd.33  6      151    115    6      0      7      7      7      2      12     19     3      4      | 339   
osd.34  4      152    115    7      0      8      3      3      7      25     15     3      6      | 348   
osd.35  5      152    112    4      0      6      4      4      8      20     21     2      5      | 343   
osd.36  7      153    115    3      0      4      6      2      4      18     21     7      3      | 343   
osd.37  1      152    114    3      0      1      7      2      5      18     23     3      5      | 334   
osd.38  6      153    115    9      0      2      5      6      2      14     13     4      2      | 331   
osd.39  4      151    114    6      0      6      6      2      6      24     22     2      5      | 348   
osd.40  3      152    115    3      0      4      7      7      6      18     15     4      4      | 338   
osd.41  4      152    114    4      0      3      3      4      4      24     23     4      4      | 343   
osd.42  1      152    113    6      0      4      4      7      4      16     16     6      2      | 331   
osd.43  5      151    115    5      0      7      3      2      2      14     23     5      3      | 335   
osd.44  5      152    112    7      0      3      3      5      11     17     26     8      4      | 353   
osd.45  5      153    115    7      0      5      1      7      7      22     18     5      5      | 350   
osd.46  5      151    114    6      0      2      7      5      8      16     20     4      6      | 344   
osd.47  4      153    114    6      0      6      2      9      3      21     19     2      9      | 348   
osd.48  8      151    114    1      0      4      2      4      5      17     19     1      7      | 333   
osd.49  5      152    114    4      0      4      4      4      4      22     18     2      4      | 337   
osd.50  8      153    115    4      0      6      5      4      1      20     19     4      1      | 340   
osd.51  5      153    115    5      0      4      4      7      6      15     15     3      8      | 340   
osd.52  9      152    114    4      0      4      2      2      6      12     18     6      3      | 332   
osd.53  5      153    113    7      0      5      4      6      1      28     21     3      8      | 354   
osd.54  3      151    114    8      0      5      8      7      7      13     14     3      5      | 338   
osd.55  8      152    113    9      0      2      5      5      4      20     24     12     1      | 355   
osd.56  7      153    113    1      0      3      6      1      7      23     26     6      1      | 347   
osd.57  8      151    115    5      0      6      1      10     10     23     26     5      4      | 364   
osd.58  7      153    113    3      0      5      5      4      3      15     22     6      7      | 343   
osd.59  4      150    115    7      0      5      3      5      10     17     11     5      6      | 338   
osd.60  4      152    115    7      0      6      4      1      2      16     10     2      5      | 324   
osd.61  5      152    113    4      0      7      3      1      8      22     21     8      4      | 348   
osd.62  8      150    113    2      0      4      1      5      2      11     21     4      9      | 330   
osd.63  4      150    113    5      0      1      5      7      5      27     21     3      3      | 344   
osd.64  4      151    115    5      0      6      6      5      7      14     25     5      9      | 352   
osd.65  5      150    113    3      0      7      6      5      3      18     18     6      6      | 340   
osd.66  5      151    112    6      0      4      3      4      4      17     20     3      4      | 333   
osd.67  4      153    113    8      0      7      2      7      3      19     13     5      3      | 337   
osd.68  7      153    115    3      0      6      3      5      0      14     12     2      5      | 325   
osd.69  5      151    114    3      0      8      3      5      3      16     21     3      5      | 337   
osd.70  5      152    113    7      0      3      4      8      5      24     16     2      6      | 345   
osd.71  3      151    112    2      0      8      6      3      7      18     22     5      5      | 342   
osd.72  8      151    112    7      0      4      5      5      5      13     18     8      6      | 342   
osd.73  4      151    114    2      0      13     6      6      3      23     18     5      2      | 347   
osd.74  3      153    114    7      0      3      1      3      6      24     11     6      3      | 334   
osd.75  3      150    115    1      0      9      5      6      4      19     21     1      7      | 341   
osd.76  5      153    115    4      0      5      6      5      3      26     21     4      3      | 350   
osd.77  2      153    114    5      0      12     4      4      7      22     23     4      3      | 353   
osd.78  5      153    114    4      0      2      8      5      5      26     22     7      5      | 356   
osd.79  2      152    113    5      0      5      3      2      5      22     23     9      4      | 345   
osd.80  7      150    113    7      0      5      3      4      2      23     17     3      2      | 336   
osd.81  3      152    114    2      0      4      4      4      4      24     13     4      4      | 332   
osd.82  5      151    112    5      0      6      1      7      7      24     26     4      8      | 356   
osd.83  5      151    112    2      0      7      5      6      6      24     24     5      6      | 353   
osd.84  1      153    114    6      0      4      6      2      4      13     9      9      3      | 324   
osd.85  5      151    112    4      0      4      8      8      6      11     10     7      4      | 330   
osd.86  7      150    112    8      0      4      5      4      2      19     22     4      4      | 341   
osd.87  5      152    115    4      0      5      4      5      3      15     18     7      9      | 342   
osd.88  3      150    112    2      0      4      3      7      4      15     21     1      4      | 326   
osd.89  6      151    114    4      0      7      5      3      4      23     22     4      2      | 345   
osd.90  1      151    114    1      0      0      4      3      3      22     22     8      4      | 333   
osd.91  3      150    115    8      0      3      6      7      3      16     19     5      6      | 341   
osd.92  6      152    115    3      0      4      2      3      5      24     20     4      4      | 342   
osd.93  4      153    114    5      0      6      2      6      8      18     15     5      4      | 340   
osd.94  8      153    115    8      0      3      6      5      4      15     14     6      2      | 339   
osd.95  7      152    114    3      0      4      5      7      6      23     25     2      3      | 351   
osd.96  3      150    115    2      0      4      6      8      7      24     20     5      7      | 351   
osd.97  10     150    115    2      0      3      7      5      5      12     15     5      8      | 337   
osd.98  4      153    115    5      0      5      8      4      6      20     14     5      4      | 343   
osd.99  6      152    115    6      0      2      5      7      2      18     19     4      4      | 340   
osd.100 3      151    113    5      0      8      8      5      6      18     17     5      4      | 343   
osd.101 5      152    113    7      0      3      2      2      9      14     27     11     6      | 351   
osd.102 6      152    113    2      0      2      4      4      4      14     17     5      7      | 330   
osd.103 1      152    112    8      0      6      2      2      3      16     19     6      4      | 331   
osd.104 6      153    113    1      0      2      5      5      8      21     18     3      4      | 339   
osd.105 3      153    113    6      0      7      5      0      5      22     23     5      4      | 346   
osd.106 7      152    115    6      0      3      8      6      6      13     18     2      4      | 340   
osd.107 3      152    114    7      0      12     3      2      7      22     23     6      3      | 354   
osd.108 0      0      0      0      171    0      0      0      0      0      0      0      0      | 171   
osd.109 0      0      0      0      170    0      0      0      0      0      0      0      0      | 170   
osd.110 0      0      0      0      171    0      0      0      0      0      0      0      0      | 171   

--------------------------------------------------------------------------------------------------------------

SUM   : 512    16384  12288  512    512    512    512    512    512    2048   2048   512    512    |
root@node166:~# 

可行性验证

EC 4+2, 2盘组RAID0

2021-09-09

01:52集群异常,是因为忘记调整obj meta size,导致默认值情况下计算的inode耗尽,如下图所示:

当时数据已经写了3.2亿左右,没有截图,早上上班时候,发现此问题,调整了参数,继续灌数据:

从上面图可以看出来,凌晨2点48前后,集群没有流量了:

出现了Near full 和backfillfull,此时还是可以继续写入的,只是接着出现了FULL,97%了,导致数据无法写入:

早上到Office后,调整了参数,让数据继续灌,不打算终止重新跑,因为只要此刻开始,后面只要写入的数据是平稳的,没有衰减,目的就达到了,持续观察中(下面是灌了4.98亿对象时看到的状况截图):

后面3个节点,相较前3个节点, NVME SSD比较弱了。

重做集群(2021-09-11):

写了5.7亿,pool出现 near full,衰减的厉害。

EC 4+2 2盘RAID0, 但每个node使用10组RAID做OSD

2021-09-12

出现OSD near full,之后写性能下降。

6盘组RAID0,每个node 6个OSD

2021-09-13

前3个node,用一块 Nvme 做ssd osd pool

还是出现了metadata pool full,与osd full的问题

2021-09-14

考虑到上面没有多metadata pool做PG split,PG数量太少,objects数量太多,有可能引发osd metadata near full问题,导致性能下降。

重做环境,继续观察。

Lab 继续后续测试

场景1 Enable Rack Awareness, EC 2+1,空桶状况下上传7.2亿4K小对象

存储端信息

灌的object量:

集群统计信息:

cosbench端统计信息

性能瓶颈

如下为node4~node6的NVME atop信息片断,这3个节点NVME SSD要表node1~node3的NVME SSD弱一个档次。

node 166

node 165

node 164

疑问

整个过程中没有看到HDD忙,考虑到NVME SSD空间比较大,而且调整过bigterastore object cache size为1000万,总共是108个HDD OSD和 3 个NVME OSD,SSD 能够容纳的对象数是11亿左右(1000万*111个OSD),上面总共灌了7.2亿对象,这些对象在SSD里,所以没有看到衰减迹象。

下个场景,改变一下测试策略,不再调整object cache size,使用默认值(100万)。

场景2 EC 4+2,空桶状况下上传12亿4k小对象

使用默认的be cache max objs参数,灌12亿对象到单一bucket中,但灌到8亿的时候出现osd near full,再继续灌下去,出现osd full,然后性能开始下降了,所以先记录数据,终止测试,下一轮次依然是12亿的目标,但会将metadata pool 和s3 data pool的PG数放大验证看看。

统计信息

存储UI端

存储后端

cosbench 统计

硬件资源开销

如果是在灌了5.4+亿对象后截屏信息

atop信息

node161

node162

node163

node164

node165

node166

iostat信息

node161

node162

node163

node164

node165

node166

注意点:

在灌了7.6亿对象情况下,发现部分osd的metadata usage 接近near full阈值(0.85),下图是设置bigterastore_obj_meta_size=1024下看到的信息:

现在调整bigterastore_obj_meta_size=512,执行上面的脚本获取osd的metadata usage并没有发生变化。

再次测试

2021-09-16

放大metadata 和 s3-data-pool的PG numbers

root@node166:~# ceph osd pool get s3-data-pool pg_num
pg_num: 2048
root@node166:~# ceph osd pool get metadata pg_num
pg_num: 8192
root@node166:~# cat enlarge_pg.sh 
# pool_name='s3-data-pool'
pool_name='metadata'
cur_pg_num=`ceph osd pool get ${pool_name} pg_num |awk -F ':' '{{print $NF}}'`
target_pg_num=`expr ${cur_pg_num} \* 3`

for i in {1..256}; do
    cur_pg_num=`ceph osd pool get ${pool_name} pg_num |awk -F ':' '{{print $NF}}'`
    new_pg_num=`expr ${cur_pg_num} + 128`
    ceph osd pool set ${pool_name} pg_num ${new_pg_num}
    ceph osd pool set ${pool_name} pgp_num ${new_pg_num}
    sleep 0.2
    if [[ ${new_pg_num} -eq ${target_pg_num} ]]; then
        break
    fi
done
root@node166:~# 

当灌到4.4亿的时候,查看了各个osd的matedata usage,发现前3个node与后3个node的用量还是有蛮大差距:

root@node163:~# ceph daemon osd.48 perf dump bigterastore
{
    "bigterastore": {
        "bt_js_coll_num": 877,
        "bt_js_obj_num": 280268,
        "bt_js_attrs_bytes": 154207729,
        "bt_js_attrs_num": 1610103,
        "bt_js_attrs_rm_num": 0,
        "bt_js_omap_bytes": 5580884,
        "bt_js_omap_num": 92452,
        "bt_js_omap_rm_num": 90618,
        "bt_bc_coll_num": 877,
        "bt_bc_obj_num": 1573011,
        "bt_bc_dirty_obj_num": 1572988,
       "bt_bc_obj_reads": 53,
        "bt_bc_obj_writes": 64191,
        "bt_bc_obj_read_miss": 22,
        "bt_bc_dirty_size": 37119551,
        "bt_bj_transaction_wait_buf": 0,
        "bt_bj_transaction_wait_aio": 0,
        "bt_bj_transaction_in_flight": 0,
        "bt_bj_flusher_s_dispt": 0,
        "bt_bj_flusher_o_dispt": 0,
        "bt_bj_flusher_segments": 0,
        "bt_bj_flusher_objs": 0,
        "bt_bj_segment_head": 2,
        "bt_bj_segment_flushed": 15,
        "bt_bj_segment
        }
}

root@node164:~# ceph daemon osd.56 perf dump bigterastore
{
    "bigterastore": {
        "bt_js_coll_num": 867,
        "bt_js_obj_num": 250467,
        "bt_js_attrs_bytes": 119715269,
        "bt_js_attrs_num": 1249755,
        "bt_js_attrs_rm_num": 0,
        "bt_js_omap_bytes": 4524222,
        "bt_js_omap_num": 74818,
        "bt_js_omap_rm_num": 73086,
        "bt_bc_coll_num": 867,
        "bt_bc_obj_num": 7830607,
        "bt_bc_dirty_obj_num": 7830443,
        "bt_bc_obj_reads": 15,
        "bt_bc_obj_writes": 70003,
        "bt_bc_obj_read_miss": 2,
        "bt_bc_dirty_size": 81089512,
        "bt_bj_transaction_wait_buf": 0,
        "bt_bj_transaction_wait_aio": 0,
        "bt_bj_transaction_in_flight": 37,
        "bt_bj_flusher_s_dispt": 0,
        "bt_bj_flusher_o_dispt": 0,
        "bt_bj_flusher_segments": 0,
        "bt_bj_flusher_objs": 0,
        "bt_bj_segment_head": 12,
        "bt_bj_segment_flushed": 9,
        "bt_bj_segment_trimmed": 6
    }
}

Big帮忙确认了一下:

前3个node的nvme性能比较强悍,object flush&evict比较快,所以HDD的空间消耗也明显比后面3个节点多,前3个node cache object也少于后面的3台,建议各个node统一下NVME SSD。

Lab最终测试

2021-09-17

说明:

​ 如下场景的测试,各个node均有一块ADATA NVME SSD,确保各个node Bigterastore Cache FS inode 均衡,不会因NVME SSD性能不同造成flush/evict不同,引发各个node的Bigterastore Cache FS inode消耗不均衡。

一倍放大PG数

每个node使用相同的NVME SSD(ADATA)做OSD的Journal&Cache;

即将原来node161~163上的一块ADATA NVME SSD替换到node164166上,确保node161166 6个node都有一块ADATA NVME SSD;

将node164~166上的P4510/4610 NVME SSD,给node161~163使用,做nvme ssd pool as s3 index pool,因为这3个node的CPU更强悍。

虽然Big说不再放大PG数,考虑到对象数据较大,本次测试还是放大了一倍看看效果如何,metadata pool 、s3-data-pool和 s3-index-pool均有放大一倍:

说明:

​ 32768为2副本的metadata pool;

​ 24576为4+2EC s3-data-pool;

​ 1024为2副本s3-index-pool

整个测试期间,瓶颈在NVME(不是S3 index pool对应的 NVME SSD):

node161

node162

node163

node164

node165

node166

2021-09-18

写了6.2个亿对象

此时UI统计信息:

这里有波动,基本上一个小时出现一次,推测是flush/evict造成,尚未找到具体证据。

2021-09-19

至此之后,性能直线衰减。

停掉cosbench task,此后各个node持续flush/evict object到HDD:

cosbench停掉10余个小时后:

各个node 的cache inode消耗:

各个节点HDD inode消耗:

说明flush/evich比较慢,停掉cosbench task 大约7个小时候,各个node的osd与cache inode消耗情况如下:

从这个角度讲,存储能写多少4k的小object,取决于2方面:

  1. 产品默认支持计算出来的inode是否能够满足实际需要;

  2. ssd flush/evict是否足够快,HDD能够支撑住如此快的flush/evict

考虑到我验证的场景是验证不会随着bucket中对象数的增多而出现衰减,所以考虑重新测试,降低cosbench写速度,避免因写的太快而flush/evict太慢造成osd cache inode提早耗尽出现性能断崖式衰减。

继续在灌了10亿基础上,等待cache inode消耗减低至0.5以下后,写3亿4K小对象,观察有10亿基础数据情况下,这3亿对象写期间性能是否会衰减

期间node164 因memory 耗尽出现osd down,始终无法恢复,重启机器与只启用部分osd(18个osd启用15个),无法恢复;第三次重启机器后,只启用了一半的osd,且等待cache inode 消耗降低到1%情况下:

然后逐步启用余下的osd:

但osd pg log占用太多memory,只能等PG状态全部是active+clean情况下,才会释放多余的pg log所占用的memory:

最终还是没法启动所有的osd,只能停用node164上的部分osd,在PG处于如下状态,灌1亿4Kobjects:

期间NVME 与 HDD 都非常忙,重点是NVME,有做Bigterastore cache,新写入的数据会先到Cache里:

调整过be_cache_paused_flusher_qsize到32(默认1),cosbench展示的各个driver的OPS波动比较大了,之后又恢复默认值:

之后碰到cache写满导致osd crash

集群测统计信息:

cosbench统计信息:

各个node的inode消耗情况:

说明:

node164 有部分osd down,因memory不足无法启动起来,后来停用了这个node上的一批osd,所以会存在部分cache FS inode消耗明显高很多的状况。

结论:

​ 从UI统计折线图看,无需手工放大PG数,产品Enable PG Split所分裂出来的PG数更优异。

使用启用PG Split功能后的PG数,灌4K 1200Million 对象,降低cosbench写速度

root@node166:~# ./pg_allocate.py 
dumped all

pool  : 1      10     12     13     14     2      3      4      5      6      7      8      9      | SUM
--------------------------------------------------------------------------------------------------------------
osd.0   8      152    5      113    0      2      5      6      4      17     21     8      5      | 346   
osd.1   4      151    7      112    0      4      4      5      5      17     16     4      2      | 331   
osd.2   5      153    6      112    0      4      2      6      8      23     19     3      4      | 345   
osd.3   2      153    7      113    0      2      6      7      5      15     21     4      6      | 341   
osd.4   4      151    1      114    0      5      9      5      4      13     19     7      2      | 334   
osd.5   4      153    4      115    0      3      8      3      3      16     21     3      3      | 336   
osd.6   7      152    3      115    0      1      3      4      3      21     25     6      3      | 343   
osd.7   7      153    6      115    0      5      4      6      4      23     19     8      4      | 354   
osd.8   3      152    3      112    0      1      5      4      6      13     23     2      5      | 329   
osd.9   6      150    1      114    0      6      3      4      4      25     14     3      3      | 333   
osd.10  6      152    4      113    0      2      3      5      0      21     11     8      2      | 327   
osd.11  3      150    3      114    0      9      5      4      7      22     16     2      5      | 340   
osd.12  4      152    6      115    0      7      8      4      3      18     23     4      4      | 348   
osd.13  4      153    2      113    0      7      6      4      5      22     17     9      6      | 348   
osd.14  6      151    9      115    0      3      8      6      1      22     21     9      2      | 353   
osd.15  7      151    1      114    0      4      3      8      5      18     21     5      10     | 347   
osd.16  4      153    8      115    0      7      2      9      5      14     12     6      8      | 343   
osd.17  4      151    6      114    0      6      8      5      5      14     23     6      7      | 349   
osd.18  7      150    6      112    0      3      7      4      2      23     21     1      5      | 341   
osd.19  5      153    6      114    0      4      5      8      8      17     16     6      4      | 346   
osd.20  1      152    4      115    0      5      3      2      4      12     16     5      5      | 324   
osd.21  5      150    4      113    0      4      3      5      6      25     21     2      9      | 347   
osd.22  5      152    8      114    0      8      2      6      6      15     19     1      7      | 343   
osd.23  5      151    6      112    0      9      3      5      6      21     25     5      5      | 353   
osd.24  3      153    11     114    0      2      9      6      8      24     24     5      2      | 361   
osd.25  4      151    5      114    0      6      4      4      3      14     26     5      6      | 342   
osd.26  4      151    3      115    0      3      9      5      3      20     21     4      9      | 347   
osd.27  3      153    1      114    0      5      9      2      3      20     22     6      4      | 342   
osd.28  5      153    4      115    0      6      5      5      6      19     17     5      6      | 346   
osd.29  6      151    6      114    0      5      2      3      4      22     24     6      0      | 343   
osd.30  5      151    6      114    0      6      7      4      6      15     21     4      3      | 342   
osd.31  2      152    1      113    0      4      1      4      7      16     16     7      6      | 329   
osd.32  3      153    7      114    0      8      6      9      10     20     18     2      5      | 355   
osd.33  6      150    4      114    0      7      3      2      3      21     18     2      6      | 336   
osd.34  3      153    2      114    0      3      3      4      4      14     13     5      7      | 325   
osd.35  4      151    5      113    0      7      3      5      5      18     17     6      4      | 338   
osd.36  4      151    7      115    0      4      5      3      5      20     20     2      5      | 341   
osd.37  2      153    4      114    0      4      5      3      2      20     11     5      4      | 327   
osd.38  3      153    1      115    0      4      4      4      8      16     14     6      4      | 332   
osd.39  3      151    9      115    0      2      3      1      3      17     26     4      6      | 340   
osd.40  4      151    6      115    0      0      7      5      4      28     20     2      4      | 346   
osd.41  5      151    7      114    0      3      4      2      5      20     19     10     4      | 344   
osd.42  3      151    6      112    0      5      6      4      4      16     12     7      1      | 327   
osd.43  0      150    5      115    0      5      4      6      2      23     16     4      7      | 337   
osd.44  4      151    6      114    0      3      4      6      6      13     19     4      3      | 333   
osd.45  6      150    7      114    0      7      4      7      3      21     23     4      8      | 354   
osd.46  7      152    5      113    0      4      6      5      6      32     15     5      6      | 356   
osd.47  10     151    5      112    0      4      2      5      3      12     26     5      1      | 336   
osd.48  8      153    5      114    0      4      6      4      4      24     21     4      3      | 350   
osd.49  3      151    6      113    0      6      2      2      11     11     19     6      5      | 335   
osd.50  2      153    4      113    0      6      4      4      6      13     20     4      5      | 334   
osd.51  7      150    2      113    0      3      10     5      5      23     17     2      3      | 340   
osd.52  7      151    5      113    0      4      12     1      3      18     26     5      3      | 348   
osd.53  4      152    3      114    0      6      6      5      3      17     16     6      9      | 341   
osd.54  5      152    6      115    0      6      6      5      4      22     20     4      7      | 352   
osd.55  3      151    6      113    0      1      3      2      6      28     20     4      8      | 345   
osd.56  4      153    3      112    0      5      5      6      7      23     16     4      4      | 342   
osd.57  8      153    5      114    0      4      4      8      8      14     15     1      5      | 339   
osd.58  6      152    5      114    0      4      7      5      3      22     16     7      4      | 345   
osd.59  5      153    9      114    0      2      3      4      7      23     21     5      3      | 349   
osd.60  6      152    5      115    0      6      3      1      4      18     25     5      5      | 345   
osd.61  4      153    7      113    0      4      6      2      5      13     17     4      5      | 333   
osd.62  5      150    4      112    0      5      3      2      6      12     19     6      1      | 325   
osd.63  4      150    3      115    0      5      4      11     5      14     20     7      4      | 342   
osd.64  7      153    9      114    0      8      3      2      7      15     15     5      3      | 341   
osd.65  2      153    4      115    0      3      3      3      3      15     24     3      8      | 336   
osd.66  7      153    4      114    0      2      2      6      3      17     11     7      5      | 331   
osd.67  7      151    4      114    0      6      3      7      5      23     19     4      5      | 348   
osd.68  9      153    7      113    0      3      5      6      3      21     24     9      2      | 355   
osd.69  1      152    4      114    0      4      8      1      5      24     14     2      8      | 337   
osd.70  6      150    5      114    0      1      6      6      4      16     20     2      4      | 334   
osd.71  7      152    7      113    0      5      6      2      7      22     17     6      7      | 351   
osd.72  4      152    3      114    0      4      8      5      6      9      18     9      6      | 338   
osd.73  7      153    5      113    0      12     5      5      2      23     18     6      6      | 355   
osd.74  2      151    9      114    0      2      3      2      3      26     13     2      1      | 328   
osd.75  6      153    3      113    0      7      6      1      4      14     15     4      6      | 332   
osd.76  5      153    2      114    0      4      8      8      3      23     22     3      2      | 347   
osd.77  6      153    6      115    0      10     5      5      8      20     25     3      4      | 360   
osd.78  4      151    3      113    0      0      6      6      3      19     23     5      4      | 337   
osd.79  5      151    7      115    0      6      6      5      5      26     18     5      2      | 351   
osd.80  6      151    6      114    0      8      6      5      2      28     24     4      5      | 359   
osd.81  4      150    4      113    0      4      5      4      7      21     12     6      5      | 335   
osd.82  5      150    5      114    0      10     2      5      3      23     21     2      8      | 348   
osd.83  3      152    4      113    0      7      3      6      2      22     21     4      3      | 340   
osd.84  5      152    7      114    0      5      5      7      7      12     10     3      4      | 331   
osd.85  6      150    6      114    0      7      4      5      6      12     9      6      5      | 330   
osd.86  5      153    7      114    0      8      3      5      4      23     19     6      5      | 352   
osd.87  9      151    2      113    0      6      4      6      5      12     18     9      9      | 344   
osd.88  6      152    3      114    0      3      4      5      3      19     19     1      4      | 333   
osd.89  5      152    4      114    0      3      6      6      6      18     27     4      5      | 350   
osd.90  6      151    1      112    0      4      3      5      6      20     21     5      3      | 337   
osd.91  3      152    4      114    0      7      9      5      8      24     24     4      7      | 361   
osd.92  3      153    6      114    0      4      5      2      6      23     22     3      3      | 344   
osd.93  5      150    3      113    0      4      4      6      5      22     18     10     6      | 346   
osd.94  7      153    2      114    0      2      2      4      7      15     15     5      3      | 329   
osd.95  5      152    4      114    0      4      3      5      4      17     27     2      2      | 339   
osd.96  5      150    5      114    0      4      2      4      4      22     15     4      7      | 336   
osd.97  6      152    3      115    0      4      5      5      3      12     14     4      2      | 325   
osd.98  2      153    3      114    0      2      3      12     5      18     23     3      5      | 343   
osd.99  1      151    6      113    0      7      1      4      2      19     23     5      3      | 335   
osd.100 3      151    5      112    0      7      5      3      8      24     13     3      6      | 340   
osd.101 9      150    0      114    0      5      5      8      3      20     19     8      3      | 344   
osd.102 4      151    5      112    0      3      7      5      1      13     20     9      6      | 336   
osd.103 3      152    5      115    0      3      1      3      2      21     13     5      6      | 329   
osd.104 7      153    4      114    0      5      5      7      6      14     24     3      8      | 350   
osd.105 2      153    3      115    0      6      3      3      7      20     15     1      6      | 334   
osd.106 1      151    3      114    0      3      4      6      7      17     18     9      7      | 340   
osd.107 5      152    3      115    0      11     6      5      3      21     22     3      2      | 348   
osd.108 0      0      0      0      170    0      0      0      0      0      0      0      0      | 170   
osd.109 0      0      0      0      171    0      0      0      0      0      0      0      0      | 171   
osd.110 0      0      0      0      171    0      0      0      0      0      0      0      0      | 171   

--------------------------------------------------------------------------------------------------------------

SUM   : 512    16384  512    12288  512    512    512    512    512    2048   2048   512    512    |
root@node166:~# ceph df
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED 
    1.55PiB     1.55PiB      3.73GiB             0 
POOLS:
    NAME                          ID     USED        %USED     MAX AVAIL     OBJECTS 
    .rgw.root                     1      1.07KiB         0        354TiB           4 
    default.rgw.control           2           0B         0        295TiB           8 
    default.rgw.meta              3      2.13KiB         0        295TiB          15 
    default.rgw.log               4           0B         0        295TiB         192 
    .ezs3                         5           0B         0        322TiB           1 
    data                          6           0B         0        443TiB           0 
    default.rgw.buckets.data      7           0B         0        525TiB           0 
    .ezs3.central.log             8       130KiB         0        354TiB           4 
    .ezs3.statistic               9      44.4MiB         0        354TiB         760 
    metadata                      10          0B         0        740TiB           0 
    default.rgw.buckets.index     12          0B         0        322TiB           0 
    s3-data-pool                  13          0B         0        985TiB           0 
    s3-index-pool                 14          0B         0       5.13TiB        1134 
root@node166:~# 

经过几天持续的灌入,后期(大约最后一亿的对象)由于cosbench task部分workers与部分driver还在持续运行中,如下图所示:

部分workers已经结束,但对应driver的部分worker下的mission还在持续运行中:

导致cosbench客户端压力不足,整体性能衰减,不应理解为产品问题。

最终灌12亿对象的效果如下:

存储端:

​ 由于测试到尾声的时候,cosbench task对应driver里有部分的workers结束,有的整个driver结束,导致后期cosbench 压测的压力不足,所以性能衰减,可以参考28号6:00之前的数据,整体看有衰减,但衰减波动幅度不大。

只看前11亿数据:

cosbench task信息:

cosbench绘制不了折线图了,这里以driver1显示的速度做标记,最初是500ops,跑到结束的时候大约300+,平均下来400+的ops:

基础数据10亿下灌一亿4k

PG split功能开启,创建s3-data-pool&s3-index-pool,PG分布均衡,做了上面的参数优化

单一bucket,存在10.2亿数据,持续灌1亿4K对象

开始是有10.2亿数据:

然后灌1亿对象:

cosbench task信息:

结束语

  • metadata pool, s3 data pool 需要启用PG Split功能

  • 确保 metadata pool, s3 data pool,s3 index pool PG分布均衡

  • 无需人为再次放大metadata pool,s3 data pool, s3 index pool 的 pg_num&pgp_num,放大后并不能提升性能,反而出现间歇性的性能衰减

  • 集群中各个节点的硬件规格一致,特别在有NVME SSD做OSD Bigterastore Cache情况下,NVME SSD 规格要一致

    • 如存在有Bigterastore Cache对应SSD性能弱情况下,使得性能弱的SSD所在disk inode的消耗过多(cosbench写的快,但flush/evict慢),会提早出现pool full问题造成性能断崖式衰减
  • 针对客户POC性能测试场景,测试时需区别对待

    • 关注性能指标,有明确OPS要求的场景

      • 如要求OPS为5000的,建议空桶状态下测试,可适当放大cosbench work对应workers数量来压测,比如workers=48

      • 如要求bucket中有一定数据量,比如bucket下已有5亿对象,确保Bigterastroe Cache所在文件系统的inode消耗处于比较低的水位(e.g:df -f /data/cache/osd-name*)情况下压测,避免在inode处于高消耗状态下压测更多数据,这样只会引发pool full造成断崖式性能下跌

    • 关注持续稳定不出现性能衰减场景

      • 如要求业务不中断情况下,持续从0~10亿不出现性能衰减,则使用较小的cosbench workers来压测
        Lab的这套6节点环境验证过如下workers值:

        • workers=96,每个driver可以达到1500+ OPS

        • workers=8,每个driver可以达到1000 OPS左右

        • workers=2,每个driver可以达到200 OPS左右

        • workers=3,每个driver可以达到400 OPS左右

        • workers=4,每个driver可以达到500 OPS左右

          所以Lab里测试0~12亿对象,持续写验证不出现性能瓶颈的场景,使用的是workers=4来验证,在cosbench写入速度与flush/evict object 到HDD之间寻找一个平衡点,避免因cosbench写的太快,flush/evict太慢造成Bigterastore Cache所在文件系统的inode过早被消耗殆尽而出现性能断崖式衰减

  • 暂无法根据现有硬件来推算出集群单一bucket中最大能支持存放多少S3 objects


文章作者: Gavin Wang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gavin Wang !
  目录