Writeback和Writethrough区别
2009-03-05 15:10

Write caching 或 write-through

write-through意思是写操作根本不使用缓存。数据总是直接写入磁盘。关闭写缓存,可释放缓存用于读操作。(缓存被读写操作共用)

Write caching可以提高写操作的性能。数据不是直接被写入磁盘;而是写入缓存。从应用程序的角度看,比等待完成磁盘写入操作要快的多。因此,可以提高写性能。由控制器将缓存内未写入磁盘的数据写入磁盘。表面上看,Write cache方式比write-through方式的读、写性能都要好,但是也要看磁盘访问方式和磁盘负荷了。
write-back(write cache)方式通常在磁盘负荷较轻时速度更快。负荷重时,每当数据被写入缓存后,就要马上再写入磁盘以释放缓存来保存将要写入的新数据,这时如果数据直接写入磁盘,控制器会以更快的速度运行。因此,负荷重时,将数据先写入缓存反而会降低吞吐量。

Starting and stopping cache flushing levels

这两个设置影响控制器如何处理未写入磁盘的缓存内数据,并且只在write-back cache方式下生效。缓存内数据写入磁盘称为flushing.你可以配置Starting and stopping cache flushing levels值,这个值表示占用整个缓存大小的百分比。当缓存内未写入磁盘的数据达到starting flushing value时,控制器开始flushing(由缓存写入磁盘)。当缓存内未写入磁盘数据量低于stop flush value时,flushing过程停止。控制器总是先flush旧的缓存数据。缓存内未写入数据停留超过20秒钟后被自动flushing.
典型的start flushing level是80%。通常情况下,stop flushing level也设置为80%。也就是说,控制器不允许超过80%的缓存用于write-back cache,但还是尽可能保持这一比例。如果你使用此设置,可以在缓存内存更多的未写入数据。这有利于提高写操作的性能,但是要牺牲数据保护。如果要得到数据保护,你可以使用较低的start and stop values。通过对这两个参数的设置,你可以调整缓存的读、写性能。经测试表明,使用接近的start and stop flushing levels时性能较好。如果stop level value远远低于start value,在flushing时会导致磁盘拥塞。

Cache block size
这个值指缓存分配单元大小,可以是4K或16K。选择合适的值,可以明显的改善缓存使用性能。
如果应用程序更多时候访问小于8K的数据,而将cache block size设置为16K,每次访问仅使用一部分cache block。在16K的cache block里总是存储8K或更小的数据,意味着只有50%的缓存容量被有效使用,使性能下降。对于随机I/O和小数据块的传送,4K比较合适。另一方面,如果是连续I/O 并使用大的segment size,最好选择16K。大的cache block size意味着cache block数量少并可缩短缓存消耗延时。另外,对于同样大小的数据,cache block size大一些,需要的缓存数据传送量更小。

Writeback和Writethrough区别相关推荐

  1. write-back与Write-through

    Cache写机制:Write-through与Write-back 通常有三种方法: write through: CPU向cache写入数据时,同时向memory(后端存储)也写一份,使cache ...

  2. Sqlserver数据库性能优化

    很久没有写文章了,在系统正式上线之前,DBA一般都要测试一下服务器的性能 比如你有很多的服务器,有些做web服务器,有些做缓存服务器,有些做文件服务器,有些做数据库服务器 做数据库服务器的那台服务器性 ...

  3. 10-Armv8-A memory model guide

    目录 1 简介 2 内存模型是什么,为什么需要它? 3 页表中的Describing 3.1. 属性的层次 3.2. 关闭MMU 4 内存访问排序 5 内存类型 6 Normal memory 6.1 ...

  4. 联发科射频工程师题目_联发科技笔试题

    关于考题 , 有这样的题 : 1. char *p[10]; 这里的变量 P 是什么意思 ? A: P 是含有 10 个元素的指针数组,每个元素均为指向整型数据的指针 . 2. 在一个单链表中 , 从 ...

  5. c/c++笔试面试题(4)

    c/c++笔试面试题(4) 2007-11-08 16:46 749人阅读 评论(0) 收藏 举报 Sony笔试题  1.完成下列程序  *  *.*.  *..*..*..  *...*...*.. ...

  6. Linux内存管理:ARM64体系结构与编程之cache(1)

    <Linux内存管理:ARM64体系结构与编程之cache(1)> <Linux内存管理:ARM64体系结构与编程之cache(2)> <ARM SMMU原理与IOMMU ...

  7. 46家中外知名企业笔试面试题目

    http://blog.sina.com.cn/s/blog_4897add3010009wj.html 微软 智力题 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确 定 ...

  8. 46家中外知名企业面试题目

    46家中外知名企业面试题目    <script src="http://blog.csdn.net/count.aspx?ID=1404124&Type=Rank" ...

  9. [转]Linux块设备加速缓存bcache和dm-cache:使用SSD来加速服务器

    dm-cache 与 bcache 在 LSFMM 2013 峰会上,Mike Snitzer, Kent Overstreet, Alasdair Kergon, 和 Darrick Wong 共同 ...

最新文章

  1. muduo 与 boost asio 吞吐量对比
  2. 数学等于号是=那三个横杠是什么符
  3. 将C++里的Mat矩阵保存并由matlab提取分析
  4. 吃CPU的openmp 程序
  5. C++拷贝构造函数(深拷贝,浅拷贝)
  6. 昆仑通态复制的程序可以用吗_MCGS昆仑通态触摸屏
  7. 微弱信号检测_机动车检测线常用传感器介绍
  8. Python raw_input 函数 - Python零基础入门教程
  9. SAS在金融中的应用二
  10. MyBatis复习(八):MyBatis 分页插件 PageHelper
  11. 2018蚂蚁金服NLP用户意图的精准识别,复赛f1 = 0.7327
  12. 一鸣在群里质疑摸鱼,聊聊字节的工作文化
  13. 日语输入法电脑版_攻略!教你如何用手机打日语
  14. html4.0打不开.swf,SecurityError Error 2148 SWF 不能访问本地资源
  15. 高等数学660---从214到221
  16. docker+robot framework+selenium并发web应用UI自动化测试实践
  17. 配置DeepStreaks环境
  18. java中 enum什么意思_enum在java中是什么意思
  19. 嵌入式Linux驱动笔记(十六)------设备驱动模型(kobject、kset、ktype)
  20. 学习数学建模算法与应用【数据预处理】

热门文章

  1. 我是如何在自学编程9个月后找到工作的 1
  2. python 100days github_GitHub - fxianchao/Python-100-Days: Python - 100天从新手到大师
  3. 跟小静读CLR via C#-开篇及目录
  4. 递归合并PDF按文件夹和文件名生成目录
  5. RISC-V_GD32VF103-ADC 模数转换 电压采集
  6. 阿里企业邮箱怎么样?
  7. 常见的电子元器件分类介绍
  8. 微商城分销系统的怎么选择_有没有免费开源支持多端的_OctShop
  9. 向日葵 11.0.0.34335 中文版 (老牌国产远程控制软件)
  10. MySql 数据库 管理员密码忘记怎么办?