Chinaunix首页 | 论坛 | 博客
  • 博客访问: 807279
  • 博文数量: 247
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 501
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-12 21:53
个人简介

系统未建立

文章分类

全部博文(247)

文章存档

2021年(1)

2020年(3)

2019年(5)

2018年(3)

2017年(44)

2016年(75)

2015年(52)

2014年(63)

2013年(1)

我的朋友

分类: LINUX

2014-07-28 16:05:33

原文地址:无处不在的cache 作者:镇水铁牛

        高速设备和低速设备在数据交互中,必然需要有cache缓冲数据,以提高吞吐量和iops,这分硬件cache和软件cahce。

        以硬件cache为例:
        1.    cpu的内部cache,为了消除cpu和主存(mem)之间的性能差异,cpu内部集成L1,L2以及L3 cahce,L1的性能高于L2,L2高于L3,距离cpu越近,性能也越强,成本也会越高,目前L2或L3 cache从2M到30M不等,大cache提高性能,但也带来高功耗。
        2.    外存的cache,为了消除主存和外存(HDD)之间的性能差异,HDD内部一般集成32M或64M cache,以缓冲下发给磁盘的数据,为什么不扩大HDD的cache,可能是成本考虑,掉电时数据一致性风险,以及技术实现吧,虽然现在已经实现了ssd集成在HDD内,但市场反应很一般。
        硬件cache直接影响其产品成本,下面就要看软件上的优化。

        以软件cache为例:
        1.    在文件系统层的cahce:以块设备为例,磁盘是低速设备,缓存dentry(采用基于伙伴算法的slab机制),后续访问将直接在缓存中查找。对于文件系统中的文件(blcok fs也算是fs)访问,采用page cache机制,通过writeback方式,也能极大增加磁盘性能。
        2.    在block层的cache,如bcache、flashcache的实现是将ssd作为lv(建立在HDD上的逻辑卷)的缓冲设备,能极大提升lv设备的iops性能,对于md设备而言,有md的cache,对于最终的hdd,也会缓存数据,软件上的用queue实现优化。
         软件cache的成本较低,能在一定程度上优化性能,但优化也要有针对性,应用场景不同,需求也不同,如要保持数据强一致性的场景,不需要系统的cache,就要避免cache。        
阅读(872) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~