IOPS就是每秒的读写操作。
亚马逊EBS使用16KB的快大小来衡量EBS的IO表现。
当你创建一块预设IOPS为4000的EBS磁盘,并把他挂载到优化EBS的实例上(EBS-optimized instance,优化EBS的EC2实例链接EBS的IO通道是是专用的,可以保证足够的IO带宽),你可以每秒传输4000个16KB大小的块。(这样大概IO带宽就是62.5MBps,或者500Mbps)(这个IOPS 4000就是这个衡量出来的)。
这样的性能配置能够每秒传输2000个32KB的块,或者每秒1000个64KB的块,上限应该约等于每秒传输4000个16KB大小的块。(那传输4KB大小的块,是不是就能每秒传输16000个呢?)
当块大小大于16KB是,你的IOPS数值就变小,但是此时实例到EBS的IO带宽还是等于你传输16KB块对应IOPS数值时候的表现。当操作的块大小为16KB或者更小时,你能得到你预设的IOPS数值的表现。对于更小的块操作,你可能会看到超过你预设的IOPS数值的表现(在客户端测量时),这是因为有的客户端会将小的快合并成一个16KB大小的块来传输。
如果你得到的IOPS数值小于你预设的IOPS,这可能是因为你的EC2实例带宽是IO性能的瓶颈:你的实例得是EBS优化型实例,或者是拥有明确标注为10Gbps的网卡的类型的实例,而且你的EBS磁盘的IO带宽至少得超过你预设的IOPS。另一个你没有得到你预设的IOPS数值的原因很可能是因为你读写操作次数根本就没达到磁盘的上限,这样也就没法测量出EBS卷的真实IOPS表现。