对于ssd-cache来说,一个非常重要的指标是命中率,而客户真正关心的实际上是IOPS性能,那么命中率跟IOPS的关系怎样呢?且看下面的分析。

如果一个虚拟机的命中率是80%,另外一个虚拟机命中率是90%,那么他们的性能(IOPS)相差多少呢?凭直觉,他们的IOPS应该是相差10%,那么实际上是不是这样呢?

假如SSD磁盘单线程读的IOPS是5000,7200转的机械磁盘的IOPS是80,那么SSD每次读需要 1000ms/5000=0.2ms,机械磁盘每次读需要1000ms/80=12.5ms

100次读请求,如果命中率是80%,那么就有80次从SSD读,花费0.2ms * 80=16ms,20次从机械磁盘读,花费12.5ms * 20 = 250,总共花费16ms+250ms=266ms,100次读请求花费266ms,那么1秒钟可以完成 1000ms/266ms=376 次读操作

同样100次读请求,如果命中率是90%,那么就有90次从SSD读,花费0.2ms * 90=18ms,10次从机械磁盘读,花费12.5ms * 10 = 125,总共花费18ms+125ms=143ms,100次读请求花费143ms,那么1秒钟可以完成 1000ms/143ms=699次读操作

看出来了吗?命中率只相差10%,IOPS却相差86%

将命中率跟IOPS的关系画成拆线图如下图所示,从图中我们可以看出,随着命中率越来越高,IOPS的增长越来越快

当命中率为94%的时候,IOPS为1066,而命中率为95%的时候,IOPS则为1227,命中率只增长了1%,IOPS却增长了15%

当命中率为99%的时候,IOPS为3096,而命中率为100%的时候,IOPS则为5000,命中率只增长了1%,IOPS却增长了61.5%.

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐