ITPub博客

首页 > Linux操作系统 > Linux操作系统 > storage存储的cache缓存相关机制write-though和write-back(write-caching)

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

原创 Linux操作系统 作者:wisdomone1 时间:2013-04-22 17:54:44 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-759042/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: lun与lun masking
请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12684655