我有从系统接收到的写带宽值,我需要使用BW计算写IOPS,
Bandwidth = amount of data / secondhttp://rickardnobel.se/storage-performance-iops-latency-throughput/
根据上面的链接,我观察到以下公式,
Average IO Size * IOPS = Bandwidth因此,如果我的理解是正确的,那么如果我有平均IO大小,我将能够计算IOPS。
例子:
平均IO大小为4KB,带宽=32 4KB。
IOPS = Bandwidth / Average IO Size
IOPS = 32KB / 4KB
IOPS = 8我有两个问题要问,
1)是对的吗?
2)根据定义,平均IO大小似乎取决于操作系统和应用程序/服务的运行情况,所以有人能详细说明如何获得这个平均IO大小吗?这样我就能拿到IOPS了。
发布于 2018-02-08 00:43:59
IOPS -每秒输入/输出操作
因此,它实际上可能是非常粗略地估计为
带宽/(平均事务块大小+通信开销)
具有所有校验和的有效负载和协议封装都是可行的,实际上I/O事务将在硬件级别上批处理,从软件的角度来看,这种操作是不可见的。
如果我们比较AHCI和PATA模式,那么仅仅是通过ATA命令集的分区封装,就会产生类似于2.5的开销。由于命令队列是同步的,进一步的驱动器头部运动无法优化。一些AHCI NCQ优化可能失败。
如果是SSD,那么事情就更难以预测了,因为SSD只存储数据的近似值,这将随着时间的推移而降低,你必须预测硬件控制器的IO执行计划--其中一些可能会失败。
目前,在块设备中测量实际IOPS变得相当麻烦。因此,如果您的块设备没有IOPS计数器的某种硬件实现,那么在软件级别上进行测量是不可能的。
如果我们说的是粗略的估计- NVMe控制器,IOPS的计数精度可以像现在的+/- 10K IOPS。
https://unix.stackexchange.com/questions/422461
复制相似问题