IOPS 衡量每秒读写操作的数量,而吞吐量衡量每秒读取或写入的位数。
虽然它们衡量的东西不同,但它们通常相互遵循,因为 IO 操作的大小大致相同。
如果你有大文件,你只需要更多的IO操作来读取整个文件。文件大小对 IOPS 没有影响,因为它衡量的是读取或写入的集群数量,而不是文件数量。
如果文件较小,则会产生更多开销,因此虽然 IOPS 和吞吐量看起来不错,但实际性能可能会较低。
这是我在谈论吞吐量和 IOPS 时想到的类比。
将其视为:
您有 4 个大小相同的桶(圆盘块),您想要装满或清空水。
您将使用水壶将水转移到桶中。现在你的问题是:
在给定时间(每秒),您可以倒(写)或取出(读)多少壶水?这是 IOPS。
在给定的时间(每秒),水壶可以连续地传入/传出水桶的水量是多少(bit、kb、mb 等)?这就是吞吐量。
此外,倒水和/或取水的过程会出现延迟。这就是延迟。
谈论 IOPS 和吞吐量时需要考虑 3 件事:
- 读写操作的数量对于 AWS 中用于 Cassandra 等数据库的 OLTP 事务最有用。
吞吐量- 每秒传输的位数。即每秒传输的数据。 主要是用于大数据hadoop、kafka流等高数据传输应用程序的单元