使用 fio 方式测试 ceph 性能

文章介绍了如何使用FIO工具对Ceph单个RBD进行性能测试,包括同步和异步IOPS测试、Latency测试以及吞吐量测试,并给出了具体的FIO命令参数设置示例,以及展示了FIO测试结果的解析。

1.使用FIO测试和评估ceph性能的正确方法如下

  • 测试一个ceph单RBD
    同步IOPS测试的IOPS,I/O depth=1,模拟数据库应用读写
fio -filename=/testdir/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=10G -numjobs=30 -runtime=300 -group_reporting -name=rand_write_4k
  • 异步IOPS测试,I/O深度=8,模拟文件读写
fio -filename=/testdir/testfile -direct=1 -iodepth 8 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=30 -runtime=300 -group_reporting -name=rand_write_4k
  • 测试ceph单个RBD的latency
I/O latency是完成I/O读写所需的时间。所以我们需要测试同步I/O,而异步I/O是批量下发的
fio -filename=/testdir/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=10G -numjobs=1 -runtime=300 -group_reporting -name=rand_write_4k
  • 测试ceph单RBD吞吐量
    测试吞吐量需要足够的工作量。io_size=4K受限于单个RBD的IOPS。测试吞吐量压力不够。所以需要更大的io_size,比如4MB。
fio -filename=/testdir/testfile -direct=1 -iodepth 8 -thread -rw=randwrite -ioengine=libaio -bs=4M -size=1000G -numjobs=10 -runtime=300 -group_reporting -name=rand_write_4M

2.fio结果如下

Jobs: 1 (f=1): [w(1)][100.0%][r=0KiB/s,w=36.7MiB/s][r=0,w=9384 IOPS][eta 00m:00s]
4randwrite: (groupid=0, jobs=1): err= 0: pid=1116460: Wed Sep 25 18:22:31 2019
  write: IOPS=5428, BW=21.2MiB/s (22.2MB/s)(3823MiB/180302msec)
    slat (nsec): min=968, max=517429, avg=2960.57, stdev=4274.86
    clat (usec): min=850, max=1569.3k, avg=5840.28, stdev=25725.92
     lat (usec): min=862, max=1569.3k, avg=5843.24, stdev=25725.94

IOPS 是每秒 I/OS 数
Lat 是延迟
BW 是吞吐量

请珍惜劳动成果,支持原创,欢迎点赞或者关注收藏,你每一次的点赞和收藏都是作者的动力,内容如有问题请私信随时联系作者,谢谢!

使用 FIO(Flexible I/O Tester)工具测试 Ceph 存储性能,可以按照以下步骤进行配置和执行测试任务。FIO 是一个功能强大的 I/O 负载生成器,支持多种存储设备和文件系统的性能测试。 ### 3.1 准备工作 确保系统中已安装 FIO 工具。在大多数 Linux 发行版中,可以通过包管理器安装: ```bash sudo apt-get install fio # Debian/Ubuntu sudo yum install fio # CentOS/RHEL ``` 此外,需要确保 Ceph 客户端能够正常访问目标存储池,并具有足够的权限进行读写操作。 ### 3.2 测试方式选择 FIO 支持直接对 RBD 设备进行测试,也可以通过挂载 CephFS 文件系统后对文件进行 I/O 操作。通常推荐使用 RBD 进行更底层的性能评估。 #### 示例:挂载 RBD 设备并进行 FIO 测试 1. 创建并映射 RBD 设备: ```bash rbd create mypool/testimage --size 10240 rbd map mypool/testimage ``` 2. 格式化并挂载(如需): ```bash mkfs.ext4 /dev/rbd/mypool/testimage mount /dev/rbd/mypool/testimage /mnt/rbd ``` 3. 编写 FIO 测试脚本 `ceph_rbd.fio`: ```ini [global] ioengine=libaio direct=1 time_based=1 runtime=60 group_reporting=1 size=1G bs=4k [random-read] rw=randread name=random-read-test filename=/mnt/rbd/testfile ``` 4. 执行测试: ```bash fio ceph_rbd.fio ``` ### 3.3 性能指标分析 FIO 输出将包括 IOPS、吞吐量(MB/s)、延迟等关键指标。对于 Ceph 来说,应关注是否达到预期的 I/O 吞吐能力以及是否存在明显的延迟波动。根据引用内容,在基准测试期间应监控 CPU 和内存压力,以确认它们不是瓶颈[^1]。 ### 3.4 高级参数设置 - **缓存模式**:在 KVM 环境下使用 QEMU 时,注意“cache=writeback”模式可能影响测试结果,QEMU 可能会发出 flush 操作以确保数据写入 Ceph 集群[^3]。 - **同步机制**:频繁的 sync 操作会影响 IOPS 值,为了测得最大 IOPS,可以在准备阶段执行一次 sync,然后依赖 RBDCache 的机制进行异步 flush[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Eason哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值