对于某些极大的数据库,存储阵列缓存对于大量的写入可能会响应不及,在实际应用中是否可以针对这种特殊的系统直接写入闪存盘,跳过写缓存?对于某些极大的数据库,存储阵列缓存对于大量的写入可能会响应不及,在实际应用中是否可以针对这种特殊的系统直接写入闪存盘,跳过写缓存?
补充一下回写和透写
透写:每一个写IO请求都直接下到磁盘,不经过cache,整体性能的表现受限于磁盘本身所能提供的性能,主要取决于磁盘的转速、寻道时间等关键的参数,此时才有闪存盘性能会比普通盘高
回写:每一个写IO到达Cache就代表写入成功,然后通过Cache层面对数据进行充分的整合和调度,再统一下发到磁盘。由于写入Cache的速度会很快,因此得到比透写时更好的性能表现。
收起写缓存和存储阵列是普通的HDD还是最新的SDD没有根本上的区别,首先存储阵列都有写缓存,为了提高应用程序或是数据库程序的IO反应能力,因为磁盘的处理能力是满足不了CPU的运算能力的,所以在有新数据写入磁盘阵列之前,先写入到阵列的缓存中,得到缓存中的数据达到某个指标或是阀值时再下刷至底层的硬盘
但是对于某些极大的数据库,存储阵列缓存对于大量的写入可能会响应不及,通常的解决办法时就想楼主说的直接跳过写缓存,因为阵列的缓存可以设置为回写、透写、回写镜像等多种方式
如果有大量的写入时,可以将数据的直接写入闪存盘,跳过写缓存
收起应该说存储的控制器的cache延迟要小于闪存的延迟。传统的存储是控制器的cache的读写+机械盘来支撑前端数据读写。使用闪存盘,当然极大的提高了数据的在硬盘的读写速度,与机械硬盘相比。闪存盘+控制器cache相结合,不影响数据的读写,这种模式下的IOPS远高于与机械硬盘的方式。缓存也好,闪存也好,主要目的是将数据缓存,对二次数据的访问直取,在读的效果好。
收起