storage存储的cache缓存相关机制write-though和write-back(write-caching)

1,write-though即写操作直接写入磁盘,不使用缓存;
  即关闭写缓存
  这样就释放了更多缓存给读操作


2,缓存用于读写操作

3,write caching提升写操作的性能,因为先写到缓存中,再由存储的控制器定时把缓存数据写入到存储中
  write caching也叫write-back

4,到底是write-though或是write-back(write caching)哪种性能更好;和磁盘的工作负荷及磁盘访问方式有关

5,如果磁盘负荷很轻,比如过n久才发生io,而不是高并发的io;此时把数据先写在缓存,然后由控制器把缓存中的数据
  写入到磁盘中;自然是写性能很高
 
  但如果磁盘负荷相当重,比如不停发生io,这时把数据先写入缓存,为了写入新的数据,缓存中的数据必须要马上
  写入到磁盘中,为新的io把缓存腾出来;这样你想想,一个写操作要分为2次完成,反而减少了写性能
 
6,上述说到如果先把写的数据放在缓存中,哪么控制器会定时把缓存的数据写入到磁盘中,到底多久把缓存数据写入
  到磁盘,这里有几个参数控制
 
  且仅与write-back(write caching)有关
 
  starting cache flushing level
 
  stopping cache flusing  level
 
  二参数表示占用整个缓存的百分比
 
  如果缓存中未写入磁盘的数据达到starting cache flushing level,控制器开始把缓存数据写入到磁盘
 
  如果缓存中未写入磁盘的数据低于stopping cache flushing level,控制器停止把缓存数据写入到磁盘
 
  控制器总是先写入旧的缓存数据
 
  缓存中未写入磁盘的数据在缓存中20秒会自动写入到磁盘
 
7,典型配置二参数为80%,可以缓存更多的数据,提升写性能,但会牺性数据保护(因为更多的数据在缓存中,可能存储掉电就loss)     

  最好二参数配置成一样
 
  (因为由缓存写到磁盘的动作一直停不下来,所以会导致磁盘不停的写,即造成block disk)
  如果stopping cache flushing level远小于starting cache flusing level,由缓存写入磁盘会导致磁盘阻塞
 
8,cache block size
   指定缓存分配单元的大小
  
   可以指定4k或8k或16k
  
   选择合理的值,可以提升缓存的性能
  
   如果应用程序常常访问小于4k的数据,而把cache block size配置为16k,每次仅使用一部分cache block的空间,造成浪费
  
   如果应用程序比如oracle多是随机io和小数据块,4k比较合适;
  
   如果是数据仓库它多是顺序io和大数据块,16k比较合适 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-759042/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-759042/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值