記錄一次 TiKV page cache 調(diào)優(yōu)

最近在做 TiKV 的插入提速的時(shí)候遇到了一個(gè)非常奇怪的問(wèn)題泽艘。因?yàn)?TiKV 底層是使用 RocksDB欲险,RocksDB 會(huì)首先將數(shù)據(jù)寫(xiě)到 WAL,然后在寫(xiě)到 memtable悉盆,再在后臺(tái) flush 到 disk盯荤,然后進(jìn)行 compaction 處理。

因?yàn)槲覀冊(cè)趯?xiě)入 WAL 的時(shí)候并沒(méi)有打開(kāi) sync 標(biāo)記焕盟,照理寫(xiě) WAL 只會(huì)寫(xiě)到操作系統(tǒng)的 page cache,是一個(gè)異步寫(xiě)宏粤,這個(gè)速度應(yīng)該是非辰徘蹋快的。最開(kāi)始我們一直這么認(rèn)為绍哎,但當(dāng)我們將 WAL 放在另一個(gè)盤(pán)上面的時(shí)候来农,突然發(fā)現(xiàn),TiKV 的寫(xiě)入性能竟然提升了 10% 以上崇堰,這個(gè)發(fā)現(xiàn)讓我開(kāi)始思考沃于,寫(xiě) WAL 真的是異步的嗎涩咖。

通常,對(duì)于操作系統(tǒng)的 write 來(lái)說(shuō)繁莹,它首先會(huì)將數(shù)據(jù)寫(xiě)到 page cache檩互,當(dāng) page cache 的 dirty page 積累到一定程度,則開(kāi)始將其 flush 到磁盤(pán)咨演。如果 dirty page 超過(guò)了一個(gè)閾值闸昨,則 write 操作的進(jìn)程就會(huì)進(jìn)行強(qiáng)制刷 dirty page 的操作,即使這些 dirty page 并不是這個(gè)進(jìn)程產(chǎn)生的薄风。

在 Linux 里面饵较,控制 dirty flush 的就是 dirty_background_ratiodirty_ratio,然后我看了看我們自己系統(tǒng)的配置遭赂,發(fā)現(xiàn) background ratio 是 10循诉,而 dirty ratio 竟然只有坑爹的 20,也就是如果我們的寫(xiě)入壓力很大(主要是 RocksDB 做 compaction)撇他,那么就很容易超過(guò) dirty ratio打洼,自然寫(xiě) WAL 的時(shí)候就變成同步寫(xiě)了。

因?yàn)楝F(xiàn)代 Linux 已經(jīng)對(duì)不同盤(pán)的 dirty page 做了優(yōu)化逆粹,能保證一個(gè)盤(pán)的高 IO 操作不會(huì)過(guò)多的影響到另一個(gè)盤(pán)募疮,所以將 WAL 移到另一個(gè)盤(pán),明顯就能發(fā)現(xiàn)性能提升。

如果只有一個(gè)盤(pán),那就需要調(diào)整 dirty ratio 了砌函,我將 dirty ratio 調(diào)整到 50 之后响禽,發(fā)現(xiàn)寫(xiě)入性能也提升,但時(shí)不時(shí)會(huì)因?yàn)?compaction 導(dǎo)致 QPS 抖動(dòng)航瞭。

對(duì)于 RocksDB 來(lái)說(shuō),大量的 dirty page 是由 compaction 產(chǎn)生的,那么如果我們使用 direct IO退敦,就應(yīng)該能減少 dirty page,設(shè)置之后蚣抗,明顯發(fā)現(xiàn)寫(xiě)入 TiKV 的 QPS 曲線平滑了很多侈百。

這次調(diào)優(yōu)也算是誤打誤撞,至少讓我進(jìn)一步加深了對(duì) Linux 的理解翰铡,后面還需要惡補(bǔ)相關(guān)的操作系統(tǒng)知識(shí)钝域。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锭魔,隨后出現(xiàn)的幾起案子例证,更是在濱河造成了極大的恐慌,老刑警劉巖迷捧,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件织咧,死亡現(xiàn)場(chǎng)離奇詭異胀葱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)笙蒙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)抵屿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人手趣,你說(shuō)我怎么就攤上這事晌该。” “怎么了绿渣?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵朝群,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我中符,道長(zhǎng)姜胖,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任淀散,我火速辦了婚禮右莱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘档插。我一直安慰自己慢蜓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布郭膛。 她就那樣靜靜地躺著晨抡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪则剃。 梳的紋絲不亂的頭發(fā)上耘柱,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音棍现,去河邊找鬼调煎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛己肮,可吹牛的內(nèi)容都是我干的士袄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼朴肺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼窖剑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起戈稿,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讶舰,沒(méi)想到半個(gè)月后鞍盗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體需了,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年般甲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肋乍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡敷存,死狀恐怖墓造,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锚烦,我是刑警寧澤觅闽,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站涮俄,受9級(jí)特大地震影響蛉拙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彻亲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一孕锄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苞尝,春花似錦畸肆、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至曼氛,卻和暖如春豁辉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舀患。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工徽级, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聊浅。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓餐抢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親低匙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旷痕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 隨著app信息量越來(lái)越大,每次從網(wǎng)絡(luò)獲取數(shù)據(jù)已經(jīng)不是很可取的方案了顽冶,本地?cái)?shù)據(jù)庫(kù)的運(yùn)用已經(jīng)越來(lái)越普遍了欺抗。而說(shuō)道移動(dòng)端...
    taosiyu閱讀 4,619評(píng)論 12 13
  • 除非特別說(shuō)明,否則本文提到的寫(xiě)操作都是 buffer write/write back强重。 起因 前幾天討論到一個(gè)問(wèn)...
    linjinhe閱讀 4,807評(píng)論 0 5
  • 初次接觸HBase的讀者绞呈,建議先閱讀淺析HBase:為高效的可擴(kuò)展大規(guī)模分布式系統(tǒng)而生 HBase的構(gòu)成 物理上來(lái)...
    耀凱考前突擊大師閱讀 5,235評(píng)論 0 12
  • Hbase架構(gòu)與原理 HBase是一個(gè)分布式的贸人、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于 Fay Chang所撰寫(xiě)的Goo...
    全能程序猿閱讀 86,282評(píng)論 2 37
  • 女兒六歲了,是個(gè)問(wèn)題專(zhuān)家圾亏,也是個(gè)小話癆十拣,只要捕捉到一絲疑惑就要弄個(gè)明白。 一天晚餐后吃水果志鹃,老婆隨口說(shuō)了句夭问,市場(chǎng)上...
    華子的世界閱讀 2,205評(píng)論 0 0