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

本文详细介绍了Ceph的两个内置基准测试工具radosbench和rbdbench,用于测试rados和rbd的存储性能。radosbench支持写、顺序读和随机读测试,rbdbench则专注于块设备的吞吐量测试。通过设置不同的参数,如测试时长、块大小、并发线程数等,可以进行各种性能测试,并分析测试结果以评估系统的性能指标如带宽、IOPS和延迟。
摘要由CSDN通过智能技术生成

一、前言

参考文档: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对应参数值

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值