1. 程式人生 > >系統技術非業餘研究 » Flashcache新新增驅逐空閒髒頁引數

系統技術非業餘研究 » Flashcache新新增驅逐空閒髒頁引數

我在之前的博文提過Flashcache的cache是以set為單位管理的,每個set預設2M。 當單個set裡面的髒頁數量超過dirty_thresh_pct的時候,就會啟動背景工作佇列來把超過設定的髒頁回寫到後備磁碟去。 這裡有別的同學對flashcache設計文件的翻譯.

參看dirty_thresh_pct的文件解釋:

dev.flashcache..dirty_thresh_pct = 20
Flashcache will attempt to keep the dirty blocks in each set
under this %. A lower dirty threshold increases disk writes,
and reduces block overwrites, but increases the blocks
available for read caching.

Flashcache之所以這樣做的目的是當它在處理使用者IO請求需要cache塊的時候,保證馬上可以拿的出來。因為讀寫的時候,如果需要的cache塊不能滿足的話,flashcache選擇簡單的繞過cache機制,直接走uncache io, 同時啟動頁面回收,一下子收回超過設定部分的頁面,對效能有很大的損失。
特別是順序寫的時候,寫一圈,再回繞在寫的場合,效能特別差,就是這個原因。

那麼如何保持一定量的可用cache塊就很重要。通常cache資料都有冷熱點,而且和時間很大關係。flashcache對冷熱的判斷是透過LRU類似的演算法來判斷的,這個是基於使用頻度的維度。但是缺乏時間維度的判斷。

新版本的flashcache引入了fallow_delay引數來解決這個問題,如果一個髒頁超過fallow_delay秒,預設15分鐘,都沒有重新被訪問到,那麼資料就會被回寫。 回寫後,作為候選頁面可以被新的cache重新利用。

參看fallow_delay的文件解釋:

Sysctls for writeback mode only :
dev.flashcache..fallow_delay = 900
In seconds. Clean dirty blocks that have been “idle” (not
read or written) for fallow_delay seconds. Default is 15
minutes.
Setting this to 0 disables idle cleaning completely.

但是這樣也有不理想的地處,加大了回寫的概率,相應的加大了刷盤的數量,增加後備慢速磁碟的負擔。 於是它引入另外引數fallow_clean_speed控制每次回刷的強度。

dev.flashcache..fallow_clean_speed = 2
The maximum number of “fallow clean” disk writes per set
per second. Defaults to 2.

使用者通過配置這二個引數能夠更好的根據業務特點微調flashcache,取得效能和回寫量的平衡。

祝玩得開心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

相關推薦

系統技術業餘研究 » Flashcache新增驅逐空閒引數

我在之前的博文提過Flashcache的cache是以set為單位管理的,每個set預設2M。 當單個set裡面的髒頁數量超過dirty_thresh_pct的時候,就會啟動背景工作佇列來把超過設定的髒頁回寫到後備磁碟去。 這裡有別的同學對flashcache設計文件的翻譯. 參看dirty_th

系統技術業餘研究 » Erlang新增選項 +zerts_de_busy_limit 控制節點間通訊的資料量

erlang節點間通訊預設是通過tcp通道進行的, 而且每對節點間只有一個tcp連結,所有的rpc和內建的類似monitor這樣的訊息也都是通過這個通道進行的. 當資料量過大的時候, 系統就會發出 busy distribution port警告, 同時限制資料的吞吐. 這個值預設是128k. 現

系統技術業餘研究 » ETS的壓縮特性

即將釋出的R14B01要支援ets的壓縮,更大程度的提高記憶體的利用率。 在github上可以看到這個分支,有興趣的同學可以下載下來看看。 壓縮的時候只壓縮value, key是不壓縮的。 value特別簡單型別的eterm也是不壓縮的,因為zip壓縮需要一定長度的內容,而且壓縮本身也要加入一點的

系統技術業餘研究 » Flashcache新版重大變化

facebook釋出的flashcache見 https://github.com/facebook/flashcache, 也可以參考我之前寫的 ppt 如何使用,或者參考我們的dba寫的詳細使用和配置,見 這裡, 這裡, 這裡 7月20號,作者Mohan做了重大的改變,極大的提高了易用性。

系統技術業餘研究 » Flashcache使用的誤區以及解決方案

但是flashcache在使用中很多人會有個誤區,導致效能很低。首先我們看下flashcache的設計背景和適用場景: Introduction : ============ Flashcache is a write back block cache Linux kernel module.

系統技術業餘研究 » trace機制新增exception_trace

我們在使用Erlang的時候,經常會發現exception被靜悄悄得忽略掉了,這點對於診斷問題非常的不友好。R14B04新新增exception_trace幫助使用者在異常的時候,得到異常得呼叫棧,就馬上可以解決問題。 這個功能主要面對高階使用者,文件裡面沒怎麼描述這個事情,主要的實現在erts的

系統技術業餘研究 » R14A新增指令優化Ref訊息的接收

Erlang的慣用法之一就是在訊息匹配的時候,如果需要唯一性,通常會通過make_ref搞個唯一的Ref來作為訊息的一部分來匹配。這個慣用法用在gen_server:call或者demonitor這樣的使用頻度很高的函式裡面。由於erlang的訊息匹配是再訊息佇列裡面挨個遍歷來匹配,特別是訊息佇列

系統技術業餘研究 » 的工作和研究方向

和大家更新下: 做了將近8年資料庫後,我的工作和研究方向將會延伸到虛擬化和計算相關的雲服務,希望能夠和大家一起進步,Happy New Year! 預祝大家玩得開心! Post Footer automatically generated by wp-posturl plugin for w

系統技術業餘研究 » Erlang R17特性淺評

Erlang R17RC2 原始碼已經就緒, 參見 這裡 後續版本的釋出時間,官方的時間安排參見 這裡,摘抄如下: Preliminary dates for the upcoming release: Release: erts, emu,comp |Code stop

系統技術業餘研究 » Linux下系統呼叫sync_file_range

我們在做資料庫程式或者IO密集型的程式的時候,通常在更新的時候,比如說資料庫程式,希望更新有一定的安全性,我們會在更新操作結束的時候呼叫fsync或者fdatasync來flush資料到持久裝置去。而且通常是以頁面為單位,16K一次或者4K一次。 安全性保證了,但是效能就有很大的損害。而且我們更新

系統技術業餘研究 » Erlang R14B 增加引數 +swt 控制排程器的喚醒閥值

來自github上的otp原始碼提交訊息: Erlang R14B 新增加引數 +swt very_low|low|medium|high|very_high Set scheduler wakeup threshold. Default is medium The threshold dete

系統技術業餘研究 » 如何找出異常所在的行(思路)

在Erlang-china的郵件列表上看到這樣的問題: 我的服務經常發生這樣的錯誤,舉例: Error in process <0.33.0> with exit value: {badarg,[{erlang,’++’,[undefined,[{“37”}]]},{groups,do

系統技術業餘研究 » Erlang叢集自動化新增節點指南

Erlang的叢集是由各個節點組成的,一個節點有一個名字來標識,而不管這個節點在網路的物理位置,所以在部署Erlang叢集的時候就很方便。只要在叢集裡新啟動一個節點,給個相對固定的引導的節點,讓新節點和這個引導節點取得聯絡,由引導節點把新節點介紹入叢集就OK了。 在實踐中,新採購的機器上通常配置好

系統技術業餘研究 » fio效能測試工具添圖形前端gfio

gfio.c: In function ‘gfio_ui_setup_log’: gfio.c:322: error: ‘GtkTreeSelection’ undeclared (first use in this function) gfio.c:322: error: ‘selection

系統技術業餘研究

ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼

系統技術業餘研究 » MySQL資料庫架構的演化觀察

MySQL資料庫架構的演化觀察 December 14th, 2017 Categories: 資料庫 Tags: mysql

系統技術業餘研究 » inet_dist_connect_options

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 推薦工作機會

最後更新時間:2014/11/28 請賜簡歷至:[email protected], 感謝您對加入我們公司有興趣,我們希望能早日和您共事。 以下幾個職位1年內有效,歡迎內部轉崗:
 資深資料工程師 公司:阿里(核心系統資料庫組) 工作地點:杭州(西溪園區) 崗位描述: 分析雲服務產生的海

系統技術業餘研究 » 叢集引入inet_dist_{listen,connect}_options更精細引數微調

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 2017升的最快的幾個資料庫無責任點評

ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼