一、前言

参考文档: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 USED8.84TiB     7.11TiB      1.72TiB         19.51
POOLS:NAME         ID     USED        %USED     MAX AVAIL     OBJECTSdata         1       865GiB     20.42       3.29TiB      972426metadata     2      4.53MiB         0       3.29TiB          23rbd          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 USED8.84TiB     8.33TiB       522GiB          5.76
POOLS:NAME         ID     USED        %USED     MAX AVAIL     OBJECTSdata         1       242GiB      5.69       3.91TiB       61839metadata     2      4.53MiB         0       3.91TiB          23rbd          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_866969sec Cur ops   started  finished  avg MB/s  cur MB/s last lat(s)  avg lat(s)0       0         0         0         0         0           -           01      32      1451      1419   1418.91      1419   0.0191834   0.02214162      32      2650      2618   1308.88      1199     0.01998   0.02422863      32      3950      3918   1305.87      1300   0.0454287   0.02430574      32      5268      5236   1308.87      1318   0.0220942   0.02427265      32      6450      6418   1283.47      1182  0.00952028   0.02464426      32      7783      7751   1291.71      1333   0.0304047   0.02472597      32      8917      8885   1269.16      1134   0.0424561   0.02512288      32     10103     10071   1258.75      1186   0.0349519   0.02531829      32     11369     11337   1259.54      1266     0.18918   0.025290110      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 sequentialSEC       OPS   OPS/SEC   BYTES/SEC1      1050   1058.49  1109903644.862      2003   1010.63  1059723111.813      2960    996.71  1045129203.364      4016   1007.09  1056005653.255      4998   1004.93  1053750329.336      5986    989.95  1038033060.347      6990    996.93  1045357363.338      8012   1003.24  1051973847.839      8934    985.76  1033646506.5110      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相关】ceph基准性能测试工具相关推荐

  1. 【存储测试】cosbench存储性能测试工具

    一.前言 参考资料: https://blog.csdn.net/QTM_Gitee/article/details/100067724 https://github.com/intel-cloud/ ...

  2. ceph性能测试工具总结

    https://blog.csdn.net/Motred_/article/details/52268225 性能测试工具 1.1    磁盘性能测试 dd 1.2 网络测试 1.2.1 iperf工 ...

  3. 【ceph】ceph性能分析工具之perf dump代码打点调试统计PerfCounters

    目录 简介 一.查ceph自带的统计 1 命令格式 2 dump 命令输出结果 二.自己添加统计 三.分析案例 io耗时初分析 继续分析 进一步分析 代码修改和验证 四.报错记录 五.附录 1.代码修 ...

  4. 【ceph】ceph性能分析工具之perf dump代码打点调试统计

    目录 简介 一.查ceph自带的统计 1 命令格式 2 dump 命令输出结果 二.自己添加统计 三.分析案例 io耗时初分析 继续分析 进一步分析 代码修改和验证 四.报错记录 五.附录 1.代码修 ...

  5. 【ceph相关】ceph常见问题处理

    一.pg相关 1.xx objects unfound - 问题描述: dmesg查看磁盘发现读写异常,部分对象损坏(处于objects nofound状态),集群处于ERR状态 root@node1 ...

  6. 【ceph】ceph 网络问题和工具

    yum install -y net-tools netstat -anp|grep ganesha.nfsd ceph daemon /var/run/ceph/ceph-client.admin. ...

  7. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具

    更多参考 软件测试专家工具包2性能测试 服务器端性能 image.png Locust.io – 了解服务器端性能的好工具. 语言python3.源码 python3+ python2.7+ gith ...

  8. GBase 8c亮相国内首款金融数据库性能测试工具开源发布会

    2 月 17 日,由信通院主办的国内首款金融数据库性能测试工具开源发布会在线上召开.会上,定位于国家高端专业智库.产业创新发展平台的信通院宣布开源该测试工具,并详细阐述了开源此工具的背景.初心.历程以 ...

  9. ONF测试工作张攀:OpenFlow控制器性能测试工具进展

    2016年6月2日,"2016全球SDNFV技术大会"进入了第二天.作为连续举办三届的SDN/NFV技术与产业盛会,本届大会着眼于SDN /NFV的实践应用与部署,从SDN/NFV ...

最新文章

  1. Android开发--蓝牙操作
  2. ubuntu查看python版本-切换Ubuntu默认python版本的两种方法
  3. python验证码识别接口 服务器_python验证码识别模块
  4. LeetCode 347. 前 K 个高频元素(哈希/优先队列)
  5. php脚本启动,有没有办法启动一个PHP脚本并获得状态?
  6. VMware vSphere 功能特性比较 vsphere 6.5/6.7/7.0
  7. ubuntu安装ssh无法连接解决日志(已解决,可连接)-转
  8. Adobe向美国反垄断部门投诉苹果封杀Flash
  9. Docker DeskTop安装Jenkins教程[Windows]
  10. Java、JSP基于Java的题库管理系统的设计与实现
  11. STM32最小系统下载程序方法
  12. 中专生计算机职业素养论文,中职学生的职业素养
  13. 【Web前端】怎样用记事本写一个简单的网页-html
  14. SQL Server——SELECT单表数据查询(二)
  15. LeetCode——字节跳动系列题目
  16. 京东自营小米旗舰店小米11 Ultra手机烧主板烧屏
  17. 【泰迪杯-数据分析-1】matplotlib
  18. lisp封装为vlx方法_将VLDCL的FAS编译进VLX
  19. 大一上学期计算机试卷,大一计算机基础试卷
  20. 为什么上班是996而不是666

热门文章

  1. Servlet的监听器实现在线人数统计
  2. 泰芯半导体MCU开发工具仿真器
  3. 【ARM 嵌入式 C 入门及渐进 4-- Linux 位图 bitmap】
  4. 华中科技大学赛尔宽带登录六维空间
  5. ATLAS/ICESAT-2 NASA 数据介绍
  6. 爬取有道翻译自制小软件
  7. 谁动了我的奶酪 读后感
  8. (JAVASwing界面)java实现简单的人事管理系统(数据库原理课程设计)
  9. linux可以挂载nas盘吗_linux可以挂载nas盘吗
  10. 2020-2021年度第2学期课程回顾总结