混合存储中Flashcache使用的误区以及解决方案

标签: 数据库 未分类 flashcache skip_seq_thresh_kb | 发表时间:2011-10-29 13:41 | 作者:褚霸 comain
出处:http://rdc.taobao.com/blog/cs

Flashcache是facebook释放出来的开源的混合存储方案,用ssd来做cache提升IO设备的性能.很多硬件厂商也有类似的方案,比如说LSI raid卡. 但是这个方案是免费的软件方案,而且经过产品的考验,具体参见:
主页:https://github.com/facebook/flashcache
开源混合存储方案(Flashcache):http://blog.yufeng.info/archives/1165
Flashcache新版重大变化:http://blog.yufeng.info/archives/1429

但是flashcache在使用中很多人会有个误区,导致性能很低。首先我们看下flashcache的设计背景和适用场景:

Introduction :
============
Flashcache is a write back block cache Linux kernel module. This
document describes the design, futures ideas, configuration, tuning of
the flashcache and concludes with a note covering the testability
hooks within flashcache and the testing that we did. Flashcache was
built primarily as a block cache for InnoDB but is general purpose and
can be used by other applications as well.

它是为数据库这样的应用的离散读写优化。如果你用在了顺序读写,就有非常大的性能问题。
那么为什么呢?我来分析下:

flashcache把内部的cache空间分成很多set, 是以set而不是整体为单位提供cache以及flush后备操作. 也就是说当一个set里面的dirty page达到一个预设的值的时候,就需要把这么dirty page 淘汰并且flush到后备设备去,以便腾出空间给更热的数据使用。
那么每个set多大呢?

To compute the target set for a given dbn
target set = (dbn / block size / set size) mod (number of sets)
Once we have the target set, linear probe within the set finds the
block. Note that a sequential range of disk blocks will all map onto a
given set.

set默认是 512*4k = 2M大小,也就是说如果你的这个set刚好是一个文件所在的块,而且每次这个文件都不停的顺序写,很快这个set都变成dirty, 那么flashcache就选择马上刷,这样加速效果就没有了。

幸好作者Mohan认识到了这个问题,提供了解决方案:

见文档: https://github.com/facebook/flashcache/blob/master/doc/flashcache-sa-guide.txt 中的章节Tuning Sequential IO Skipping for better flashcache performance

他引入了配置参数来解决这个问题:

dev.flashcache.skip_seq_thresh_kb:
Skip (don’t cache) sequential IO larger than this number (in kb).
0 (default) means cache all IO, both sequential and random.
Sequential IO can only be determined ‘after the fact’, so
this much of each sequential I/O will be cached before we skip
the rest. Does not affect searching for IO in an existing cache.

这样你可以把太大的顺序写操作给过滤掉了,大大提升cache的性能。

祝玩得开心!

相关 [混合 flashcache] 推荐:

混合存储中Flashcache使用的误区以及解决方案

- comain - 淘宝核心系统团队博客
Flashcache是facebook释放出来的开源的混合存储方案,用ssd来做cache提升IO设备的性能.很多硬件厂商也有类似的方案,比如说LSI raid卡. 但是这个方案是免费的软件方案,而且经过产品的考验,具体参见:. 主页:https://github.com/facebook/flashcache.

Flashcache新版重大变化

- Eric - Erlang非业余研究
原创文章,转载请注明: 转载自Erlang非业余研究. 本文链接地址: Flashcache新版重大变化. facebook释出的flashcache见 https://github.com/facebook/flashcache, 也可以参考我之前写的 ppt 如何使用,或者参考我们的dba写的详细使用和配置,见 这里, 这里, 这里.

android混合统计图

- - Java - 编程语言 - ITeye博客
AChartEngine高级应用之CombinedXYChart(组合统计图)在单个统计图上显示多样化的数据. 现在是信息飞速发展时代,单个的统计图已经无法满足实际生产的要求,人们只想通过快速的观察就能知道很多信息,所以组合统计图就运用而生了,诸如,人们想了解一个地方的大致情况,首先可能要了解当地的天气情况,交通运输情况等,以下我模拟的是一个地方的天气、光照时间分布情况的统计图.

四则混合运算,java实现

- - ITeye博客
package com.interview.prepare; /* * 四则运算,没有括号,数字均小于零,其中中间运算过程取整. * 首先将运算时转换为逆波兰式(后缀式) * 然后通过一个栈辅助运算. 当信息为数字时入栈,当信息为符号时~(~代表+-* / * 一种),出栈并 * 做运算top2~top1 * 测试用例 3+8*2/9-2 结果输出2 * */ import java.util.ArrayList; import java.util.List; import java.util.Stack; public class Compute {.

有感Google的混合研究方法

- - Tim[后端技术]
对于一个长期在研发领域的人来说,经常需要思考研发的意义、工程与研究的关系、产品型的公司应当做何种程度的研究等问题. 理想情况下,我们期望每一项研发工作都能得到组织、同事以及社区的高度认可. 因此不管你处于工程领域还是研究领域,工程与研究的关系会让你不断思考甚至困扰. 最近看到的Google’s hybrid Approach to research ( English 中文) 一文或许会让你豁然开朗.

DHH 谈混合移动应用开发

- - 酷 壳 - CoolShell.cn
David,Ruby on Rails 作者,37signals 合伙人. 畅销书作家、演说家、赛车手、业余摄影师、顾家好男人. 37signals 在2013年2月发布了 Basecamp 的 iPhone app,在此之前我们就使用原生开发(native)还是混合开发(hybrid)做了许多尝试.

苹果的新专利:E-Ink 和 LCD 的混合显示屏

- frocket - 爱范儿 · Beats of Bits
苹果公司(Apple)最新申请的一份专利表明,他们正在研究新型的显示技术——把 E-Ink ,LCD,触摸屏加在一起,形成一个“三明治”型的屏幕. 它的优点不言而喻:对于 iPhone ,iPad ,iPod 等手持设备来说,既不牺牲全彩色图片的显示效果,又照顾了清晰锐利的单色文字. 按照专利的描述,这块屏幕不止可以在单色 E-Ink 和彩色 LCD 之间切换,而且可以根据不同区域和不同内容自动切换.

Google Chrome 团队出绝招阻断混合脚本漏洞

- Hivan Du - 谷奥——探寻谷歌的奥秘
“混合脚本执行”漏洞通常在通过 HTTPS 传送的页面加载通过 HTTP 传送的脚本、CSS 或插件资源时出现. 中间攻击者(如处于同一无线网络的用户)通常能截取 HTTP 资源加载,并对加载资源的网站获取完全权限. 情况糟糕的话跟没用 HTTPS 一个样. 稍轻但类似的问题——暂且称之为“混合显示”漏洞——通常在通过 HTTPS 传送的页面加载通过 HTTP 传送的图像、iFrame 框架或字体时出现,但只能影响页面外观.

苹果探讨E-ink/LCD混合显示技术

- Hafid - Solidot
根据最近递交的专利申请,苹果正在探讨在iPhone、iPad和iPod touch上集成E-ink显示技术的方法. E-ink/LCD混合系统将允许在不同的光照条件下显示清晰的文本,同时又能保持全彩色和视频播放等功能,结合E-ink和LCD的优点于一身. 苹果的技术与Pixel的Qi混合E-ink技术有些类似,但要更先进.

了解 Linux,302(混合环境): 文件服务

- Power - IBM developerWorks 中国 : 文档库
通过为面向系统管理员的 Linux 专业协会认证考试 LPI-302 做准备,了解如何配置 Samba 和构造配置文件. Samba 如何与网络进行交互,如何配置日志,以及如何调试 Samba 问题.