IOPS 测量每秒的读写操作数,而吞吐量测量每秒的读写位数。
Although they measure different things, they generally follow each other as IO operations have about the same size.
如果您有大文件,那么只需要更多的 IO 操作来读取整个文件。文件大小对 IOPS 没有影响,因为它衡量的是读写集群的数量,而不是文件的数量。
If you have small files, there will be more overhead, so while the IOPS and throughput look good, you may experience a lower actual performance.
IOPS -对于用于 AWS for DBs (如 Cassandra)的 OLTP 事务最有用的读写操作的数量。
吞吐量 -是每秒传输的位数。即每秒传输的数据。 主要用于高数据传输应用,如大数据 Hadoop,卡夫卡流媒体
Disk IOPS 描述每秒钟磁盘上输入/输出操作的计数,与块大小无关。
磁盘吞吐量描述了每秒可以传输多少数据,因此块大小在计算应用程序所需的吞吐量时起着巨大的作用
让我们以3000IOPS 和 SQL 数据库引擎为例,根据 db 引擎,块大小称为 页码,对于 SQL Server,它等于8KB。如果您希望计算实际吞吐量,如果 IOPS 定义,您将得到以下公式:
throughput = [IOPS] * [block size] = 3000 * 8 = 24 000 KB/s = 24 MB/s
这是我在讨论吞吐量和 IOPS 时想到的类比。
把它想象成:
您有4个桶(磁盘块)的相同大小,您要填充或空与水。
你将用一个水壶把水转移到水桶里,现在你的问题是:
At a given time (per second), how many jugs of water can you pour (write) or withdraw (read)? This is IOPS.
在一个给定的时间(每秒) ,罐子可以连续转移到/转移出桶的水量(位、 kb、 mb 等)是多少?这是吞吐量。
Additionally, there is a delay in the process of you pouring and/or withdrawing the water. This is Latency.
在谈论 IOPS 和吞吐量时,有三件事情需要考虑:
IOPS -存储系统从开始到结束每秒执行输入/输出操作所需的时间构成 IOPS。
吞吐量 -每秒兆字节的数据传输速度通常称为吞吐量。早些时候,它是以千字节(Kilobytes)计量的。但是现在标准已经变成兆字节了。
更多关于此见: IOPS 和吞吐量之间的区别是什么?