Iostat.py: 输出SPDK Bdev IO子系统性能指标

前言

提及SPDK应用的测试工具,你可能会想到SPDK自带的Perf工具 或者 SPDK针对标准FIO工具的fio_plugin。这两个工具都可以很好地测试SPDK的性能。

Perf使用参考:  一文读懂SPDK加速关键应用:解析SPDK Perf应用

fio_plugin 使用参考: 基于SPDK的NVMe SSD性能评估指南

但当你跑起了构建在SPDK上的应用后,或者运行起来了SPDK自带的target 后,当你想查看IO子系统的具体IO数据该怎么做呢?这时候使用SPDK开发的iostat.py工具就能获取Bdev层IO数据。

相比perf或者fio_plugin最大的不同:iostat.py获取的是SPDK 应用运行时Bdev自统计的IO数据并计算得出结果。顾名思义,统计出的是bdev子系统的数据。

但这个统计的数据可能和上一层(比如这个application是ISCSI subsystem)和下一层(NVMe 驱动层)统计出的数据未必完全一致。举个例子,在client和target 模型中。Target端部署了一个SPDK iSCSI target,Client 端使用iscsiadm命令然后内核驱动把target上iSCSI target 暴露出的盘mount 到本地。然后使用fio 进行测试,比如是128KB大小的数据。那么client 端统计的IO大小是128KB, 在target端使用Bdev IO统计出的值可能是有区别的。原因在SDPK iSCSI target在使用Bdev 的时候,可能在iSCSI层对IO 做了拆分。比如在ISCSI target中,一个128KB的I/O肯能被拆成了3个,分别是8KB、64KB、56KB(如果iSCSI target 端的firstburstlength是8KB)。

所以bdev 层的io只是bdev 层自己的io统计,并不一定和client 统计的数据完全对应。Iostat.py的使用,是基于SPDK框架(Target / Bdev / Driver),加上测试统计逻辑,进行IO测试统计。因此,iostat.py是无法获得SPDK驱动层管理的设备的性能信息的,如果需要在SPDK用户态驱动下,硬件设备的性能指标,可以通过

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值