250左右是否该sheepdog集群的极限?进一步换其它numjob和iodepth的组合进行测试,答案是肯定的,测试结果都在250左右,以下是线程数量为8,异步IO队列深度分别为1、4、16、64、256的测试结果,线程数量增加到16,测试数据并没有提高。

IOPS测试2:使用对象缓存,只读测试
单线程同步IO、使用对象缓存且缓存命中率的情况下(下图蓝线),sheepdog的IOPS高可达6000,对比相同条件下SSD硬盘的测试结果(高9000),还是有些损耗。

通过多任务(紫线)或者异步IO(黄线)的方式提高并发IO数量,在缓存命中率的情况下,IOPS可以提高到40000-50000,基本与相同条件下SSD硬盘的测试结果相当。

注意上图为对数刻度,且没有数据值,很难比较数值大小,下图省略了一半数据块,但是标上了数据值。

之所以强调缓存命中率,是因为在不完全命中缓存的时候,IOPS下降很厉害,低于80%的话,可能还不如没有对象缓存。下图是sheepdog对象缓存命中率与IOPS的关系图,其中,测试的数据块大小从512B倍数递增到512KB,缓存命中率是在测试过程中,根据sheepdog的cache目录中已有的对象文件数量估算的平均值,IOPS值是读取数据块操作在估算的缓存命中率条件下测量的平均值。