Write-through与Write-back的区别是什么

发布时间:2021-07-26 21:54:12 作者:chen
来源:亿速云 阅读:625

本篇内容介绍了“Write-through与Write-back的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Write Through和Write Back

   Write Through和Write Back是阵列卡Cache的两种使用方式,也称为透写和回写。当选用write through方式时,系统的写磁盘操作并不利用阵列卡的Cache,而是直接与磁盘进行数据的交互。而write Back方式则利用阵列Cache作为系统与磁盘间的二传手,系统先将数据交给Cache,然后再由Cache将数据传给磁盘。

   在配置阵列的时候,如果不是很清楚的话,默认就可以了,系统会根据磁盘类型进行默认设置。

   生产环境中的配置要根据具体的业务类型及环境进行配置,比如:如果有外置UPS电源,选Write Back,如果没有外置电源,并且对数据安全性要求很高,不要求太高性能,就选Write Through。

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大一些,需要的缓存数据传送量更小。

其他相关说明:

保护内存里的数据

   备援电池的功能是确保万一当主电源故障或突然断电时内存里的数据不流失,因此如何确保备援电池的正常运行就显得格外重要。备援电池在2种情况下,系统视为无法正常运行以保护内存里的数据。一是坏掉的时候,背板的LED灯将亮起红灯。一是电池充电的时候,背板的LED灯将亮起黄灯。备援电池的使用寿命是根据充电的次数及电力释放的周期而变化的,这取决于用户本身对盘阵的使用情况,一般而言我们建议最好在盘阵使用了12个月之后更换备援电池模块(BBU)。备援电池在正常情况下充满电的时候是3.5V,当其电力降至2.7V的时候将自动进入充电状态,此时系统因为保护内存数据不流失的电力消失,自动地将数据的写入切换成“Write-Through”模式;当充完电后,又自动切换回“Write-Back”模式。这个动作是在事件启动装置(Event Trigger)功能来执行的,在安装管理软件的时候,事件启动装置对备援电池的管理初始值是打开的(Enable)。如果你没有更改过初始设置,那么上述的动作就会正常的运行。如果备援电池已经坏掉,不能正常保护内存里的数据时,而事件启动装置对备援电池的管理是设定在关闭的状态下,我们建议你手动将数据写入模式更改为“Write-Through”模式,以免数据写入没有电力保护的内存中而主电源故障或突然断电时,这些正在写入的数据就遗失了。

减少延迟
   当关闭内存“Write-Back”功能时就进入了“Write-Through”的模式,这时候主机数据是不会写入内存而直接写入硬盘的。在“Write-Through”模式下,所有的硬盘将与其相关的主机以适当的方式存取数据块,而大多数的时候硬盘处于接受写命令的状态。此时盘阵只要从主机接收到写入的命令,硬盘的读写头就会去寻找读写的位置,并等待硬盘处于可写入的状态,这个等待的现象就是所谓的延迟(Latency Time),而硬盘经常处于等待写入的状态,增加了延迟的时间,不但缩短硬盘的使用寿命,并且系统也比较耗电。当打开内存的“Write-Back”功能时,从主机写入硬盘的数据先被写在内存里,在内存写满数据时盘阵控制器会将存在于内存的数据大量地写入硬盘。这个内存“Write-Back”的模式将主机写入的命令以写入内存来取代,可以大幅减少硬盘延迟的时间,并且相较于“Write-Through”模式,在大多数的时候提供更佳的写入政策。

“Write-through与Write-back的区别是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. access与mysql的区别是什么
  2. html与css的区别是什么?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:php检测文件编码的方法

下一篇:如何利用shell删除数据表中指定信息和字段对应的文件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》