大部分人在考虑存储性能时,他们首先想到的是最大吞吐量。但是最大吞吐量就像汽车厂商给汽车标的最高速度。实际上,你几乎永远不会达到那个速度。考虑存储性能时也不应该只考虑最大吞吐量。
还拿汽车来举例,大部分时候,加速度和过弯的处理能力可能会比最大吞吐量更重要。这和存储性能是类似的。
大部分人都知道SSD固态硬盘一般比普通的机械硬盘快。但这不仅仅是因为固态硬盘的最大吞吐量更大。还和它们的IOPS(Input/Output operations per second, 每秒读写次数)有关。更高IOPS的存储器,会提高我们日常真实应用的性能。但是IOPS也不是唯一指标。更准备的说:IOPS只有和平均时延以及读写字节大小相关联时才有意义。让我们先来看IOPS和时延。
时延指的是单个读写操作被处理的时间。这点非常重要,拿一个每秒可以处理1000个读写操作并且平均时延是10毫秒的存储系统,和另一个每秒可以处理5000个读写操作但是平均时延是50毫秒的存储系统相比,前一个在应用性能上可能更好些。尤其是对那些对时延敏感的应用,比如说数据库服务。
所以,我们需要搞清楚:IOPS和时延是如何相互关联、影响的。这里,汽车的例子可能不太合适了,我们举另外一个例子。假设你在一个特殊的超市,顾客(IO请求)被收银员(磁盘)以平均10毫秒的速度所服务。将1秒除以10毫秒,我们可以知道这个收银员1秒可以服务100个顾客。但是同一时间收银员只能服务一个顾客,服务的顺序是线性连续的。