缓存对IOPS的影响
首先,中端和高端的光纤存储系统和ISCSI存储都是基于控制器架构的,对这部分产品来说,存储性能的好坏关键在于控制内部的结构设计,设计先进的控制器可能处理效率非常高,因而并不一定要求很高速的CPU,也不需要很大的缓存。设计不好的存储即就是采用了很好CPU,很大的缓存,其性能也不见得就好。
但是缓存对性能仍然是有很大的影响的,主要体现在读数据时候的缓存命中率上。存储设备写数据的时候,都是先写入缓存,再从缓存批量写入磁盘,因此存储系统写入操作通常都会比较快。读数据的时候,存储设备则会先搜索一遍缓存,看看数据是否能在缓存命中,如果能命中,则能够非常快速的读取,如果不能,则需要耗费数倍的时间到磁盘去寻找并读取。
因此,缓存对系统性能的影响实际上体现在读数据的缓存命中率上,缓存命中率越高,系统的IOPS值就越高。而缓存命中率又受到多方面的因素影响(包括系统算法、数据分布还有访问规则等等),缓存大小只是其中之一,因此盲目增大缓存,并不一定能够提高缓存命中率,也不一定能增强系统性能。
以O博士的经验,在数据库、小文件应用的环境中增大缓存是能够大幅度提高数据写入的速度,当然前提是后端磁盘性能达到极限。但在大文件读取的应用环境,增加缓存所带来的性能提升幅度并不大。例如,在O博士经历过的一些广电行业的案例中,有些存储设备只采用了2-4GB的缓存,就能够有700-800M的大带宽,而有些存储即使采用32GB的超大缓存,其带宽性能仍然很低。