0


【ceph相关】ceph基准性能测试工具

一、前言

参考文档:RedHat-Ceph性能基准

本篇主要介绍几种ceph原生基准性能测试工具以及各自对应使用方法
不同于fio、vdbench等上层应用接口测试工具,ceph提供了一些自带的基准性能测试工具,用于测试rados、rbd等底层存储基准性能,可以比对底层基准性能和上层应用基准性能,确定潜在可调优的空间

  • rados bench rados bench为ceph自带的基准测试工具,rados bench用于测试rados存储池底层性能,该工具可以测试写、顺序读、随机读三种类型
  • rbd bench rbd bench为ceph自带的基准性能测试工具,rbd bench用于测试块设备的吞吐量

二、rados bench

1、测试参数

rados bench -p <pool_name> <seconds> <write|seq|rand> [-b block_size] [-t concurrent_operations] [-k /.../ceph.client.admin.keyring] [-c /.../ceph.conf] [--no-cleanup] [--run-name run_name]
  • -p <pool_name>: 测试存储池名称
  • <seconds>: 测试运行时长,单位为s
  • <write|seq|rand>: 测试读写类型(write:写,seq:顺序读,rand:随机读)
  • -b <block_size>: 测试读写块大小,默认为4MB,默认单位为字节 当存储池为纠删存储类型时,则最小测试文件大小与EC Stripe Width(默认4K)值相等 注:当文件大小不满足该值时,程序会自动调整为EC Stripe Width值
  • -t concurrent_operation 测试读写并发线程数,默认为16
  • -k /…/ceph.client.admin.keyring 指定测试ceph.client.admin.keyring配置文件路径
  • -c /…/ceph.conf 指定测试ceph.conf配置文件路径
  • –no-cleanup 表示测试完成后不删除测试数据,只对写有效 通常在读测试之前,需要执行写测试生成测试数据之后,再执行读测试 注:生成的测试文件可通过命令rados -p {pool_name} cleanup删除
[root@node21 ~]# ceph df
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED
    8.84TiB     7.11TiB      1.72TiB         19.51
POOLS:
    NAME         ID     USED        %USED     MAX AVAIL     OBJECTS
    data         1       865GiB     20.42       3.29TiB      972426
    metadata     2      4.53MiB         0       3.29TiB          23
    rbd          3          19B         0       3.29TiB           2
[root@node21 ~]# rados -p data cleanup
Warning: using slow linear search
Removed 910587 objects
[root@node21 ~]# ceph df
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED
    8.84TiB     8.33TiB       522GiB          5.76
POOLS:
    NAME         ID     USED        %USED     MAX AVAIL     OBJECTS
    data         1       242GiB      5.69       3.91TiB       61839
    metadata     2      4.53MiB         0       3.91TiB          23
    rbd          3          19B         0       3.91TiB           2
  • –run-name run_name 表示测试生成的对象名称

2、测试模型

执行性能测试之前,可通过

echo 3 | sudo tee /proc/sys/vm/drop_caches && sudo sync

下刷所有文件系统缓存,以便于保证性能数据准确性

  • 1M写测试 1M写、测试时长10分钟、线程数32
rados bench -p rbd 600 write -b 1M -t 32 --run-name 1M-write --no-cleanup
  • 1M顺序读测试 1M顺序读、测试时长10分钟、线程数32
rados bench -p rbd 600 seq -b 1M -t 32 --run-name 1M-seq-read

3、结果分析

[root@node55 ~]# rados bench -p rbd 10 write -b 1M -t 32 --run-name 1M-write --no-cleanup
hints = 1
Maintaining 32 concurrent writes of 1048576 bytes to objects of size 1048576 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_node55_866969
  sec Cur ops   started  finished  avg MB/s  cur MB/s last lat(s)  avg lat(s)
    0       0         0         0         0         0           -           0
    1      32      1451      1419   1418.91      1419   0.0191834   0.0221416
    2      32      2650      2618   1308.88      1199     0.01998   0.0242286
    3      32      3950      3918   1305.87      1300   0.0454287   0.0243057
    4      32      5268      5236   1308.87      1318   0.0220942   0.0242726
    5      32      6450      6418   1283.47      1182  0.00952028   0.0246442
    6      32      7783      7751   1291.71      1333   0.0304047   0.0247259
    7      32      8917      8885   1269.16      1134   0.0424561   0.0251228
    8      32     10103     10071   1258.75      1186   0.0349519   0.0253182
    9      32     11369     11337   1259.54      1266     0.18918   0.0252901
   10      32     12501     12469   1246.78      1132  0.00946298   0.0254759
Total time run:         10.461089
Total writes made:      12502
Write size:             1048576
Object size:            1048576
Bandwidth (MB/sec):     1195.1
Stddev Bandwidth:       95.1227
Max bandwidth (MB/sec): 1419
Min bandwidth (MB/sec): 1132
Average IOPS:           1195
Stddev IOPS:            95
Max IOPS:               1419
Min IOPS:               1132
Average Latency(s):     0.0262649
Stddev Latency(s):      0.0302529
Max latency(s):         0.852841
Min latency(s):         0.00503798

测试结果取最后几行的值,带宽为

Bandwidth (MB/sec)

对应的参数值,IOPS为

Average IOPS

对应参数值,时延为

Average Latency(s)

对应参数值

三、rbd bench

1、测试参数

rbd bench <rbd-name> --io-type  <io-type>  --io-size <io-size> --io-pattern <io-pattern>  --io-threads <io-threads> --io-total <total-size> 
  • rbd-name:指定测试块设备名称,如rbd/rbd01
  • –io-type:指定测试IO类型,可选参数writeread
  • –io-size:指定测试IO块大小,单位为byte,默认参数为4096(4KB)
  • –io-pattern:指定测试IO模式,可选参数为seq(顺序)、rand(随机)
  • –io-threads:指定测试IO线程数,默认参数为16
  • –io-total:指定测试总写入数据量,单位为byte,默认参数为1073741824(1G)

2、测试模型

2.1、大文件带宽测试

  • 1M顺序写 指定线程数为32,写入数据量为100G
rbd bench rbd/rbd01 --io-type write --io-size 1M --io-pattern seq  --io-threads 32 --io-total 100G
  • 1M顺序读 指定线程数为32,写入数据量为100G
rbd bench rbd/rbd01 --io-type read --io-size 1M --io-pattern seq  --io-threads 32 --io-total 100G

2.2、小文件IOPS测试

  • 4K随机写 指定线程数为32,写入数据量为10G
rbd bench rbd/rbd01 --io-type write --io-size 4K --io-pattern rand  --io-threads 32 --io-total 10G
  • 4K随机读 指定线程数为32,写入数据量为10G
rbd bench rbd/rbd01 --io-type read --io-size 4K --io-pattern rand  --io-threads 32 --io-total 10G

3、结果分析

[root@node55 ~]# rbd bench rbd/rbd01 --io-type write --io-size 1M --io-pattern seq  --io-threads 32 --io-total 10G
bench  type write io_size 1048576 io_threads 32 bytes 10737418240 pattern sequential
  SEC       OPS   OPS/SEC   BYTES/SEC
    1      1050   1058.49  1109903644.86
    2      2003   1010.63  1059723111.81
    3      2960    996.71  1045129203.36
    4      4016   1007.09  1056005653.25
    5      4998   1004.93  1053750329.33
    6      5986    989.95  1038033060.34
    7      6990    996.93  1045357363.33
    8      8012   1003.24  1051973847.83
    9      8934    985.76  1033646506.51
   10      9929    985.66  1033543565.56
elapsed:    10  ops:    10240  ops/sec:   990.65  bytes/sec: 1038773030.44

测试结果取最后一行

elapsed

的值,带宽为

bytes/sec

对应参数值(单位为bytes/sec,可根据需要转换为MB/s),IOPS为

ops/sec

对应参数值

标签: 测试工具 ceph

本文转载自: https://blog.csdn.net/Micha_Lu/article/details/126490260
版权归原作者 Luxf0 所有, 如有侵权,请联系我们删除。

“【ceph相关】ceph基准性能测试工具”的评论:

还没有评论