tokudb TOKUDB引數優化之一

2021-10-13 07:58:16 字數 1902 閱讀 7357

摘抄自:mysql核心月報 

tokudb· 引數故事·資料安全和效能

tokudb裡可調優的引數不多,今天把"最重要"的幾個拉出來曬曬。

與效能相關的引數及說明:

tokudb_cache_size(bytes):

快取大小,讀寫時候,資料會首先會快取到這裡。

預設大小為機器物理記憶體的一半。

tokudb_commit_sync(on/off):

當事務提交的時候,是否要fsync log到磁碟。

預設開啟(on),如果設定為off,效能會提公升,但可能會丟失事務(commit記錄到log buffer,但是未fsync到磁碟的事務)。

tokudb_directio(on/off):

是否開啟direct i/o功能,tokudb在寫盤的時候,無論是否開啟direct i/o,都是按照512位元組對齊的。

預設為off。

tokudb_fsync_log_period(ms):

多久fsync一下log buffer到磁碟,tokudb的log buffer總大小為32mb且不可更改。

預設為0ms(此時做fsync的後台執行緒一直處於wait狀態),此時受tokudb_commit_sync開關控制是否要fsync log到磁碟(checkpoint也會fsync log buffer的,預設為1分鐘)。

針對不同的使用場景:

1) 對資料要求較高(不允許丟失資料,事務acid完整性),只需根據記憶體調整tokudb_cache_size大小即可,建議開啟tokudb_directio。

2) 對資料要求不太高(允許部分資料丟失,不要求事務acid完整性),可配置:

tokudb_commit_sync=off

tokudb_fsync_log_period=1000 #1s

在此配置下,每1秒對log buffer做下fsync,可充分利用log的group commit功能,如果tokudb掛掉,則可能會丟失最多1秒的資料。

tokudb· ha方案·tokudb熱備

tokudb企業版提供熱備功能(與社群版唯一的區別)。

該功能以plugin方式提供,當backup plugin載入後,它會攔截所有的檔案操作(比如檔案讀寫/目錄操作等),從而實現在備份的過程中增量同步,具體原理請看:

社群版如何實現熱備呢?

官方推薦的方式是mylvmbackup,不過可能會有一些"坑"。

percona的vadim同學寫過一篇tokudb tips,介紹了percona在使用mylvmbackup熱備tokudb中遇到的"坑"及解決方法:

不能只備份tokudb自身的資料以及日誌檔案,還要備份最新的binlog,否則啟動的時候可能就"跪"了!

還有乙個比較geek的方式,直接基於tokudb自身的機制,輕鬆的熱備出乙個備庫。

上攻略:

1) set tokudb_checkpoint_lock=on;

2) 開始拷貝tokudb的資料檔案(不包含日誌檔案)

3) flush tables with read lock;

4) 記錄binlog位置,拷貝最新的binlog和tokudb的日誌檔案(*.tokulog)

5) unlock tables;

6) set tokudb_checkpoint_lock=off;

"大殺器"就是tokudb_checkpoint_lock,它的作用是允許拿到checkpoint鎖,此時tokudb的checkpoint會一直block到該鎖釋放(執行前要把tokudb_checkpoint_on_flush_logs關掉),目的是防止拷貝tokudb資料檔案的過程中做sharp checkpoint(注意:由於不做checkpoint,tokudb的日誌檔案會逐漸增多),從而導致資料檔案內部不一致(已拷貝的檔案被修改)。

整個熱備過程中,只有步驟4是阻塞寫的,但耗時較短。

hadoop 引數調優重點引數

yarn的引數調優,必調引數 28 yarn.nodemanager.resource.memory mb 預設為8192。每個節點可分配多少物理記憶體給yarn使用,考慮到節點上還 可能有其他程序需要申請記憶體,該值設定為物理記憶體總數 1.3比較合適,例如128g記憶體的節點可以分配100g 3...

MySQL引數調優

l 通用類 key buffer size 含義 用於索引塊的緩衝區大小,增加它可得到更好處理的索引 對所有讀和多重寫 影響 對於myisam 表的影響不是很大,myisam 會使用系統的快取來儲存資料,所以大量使用 myisam 表的機器記憶體很快就會耗盡。但是,如果你將該值設得過大 例如,大於總...

mysql引數調優

l max connect errors max connect errors預設值為10,也即mysqld執行緒沒重新啟動過,一台物理伺服器只要連線 異常中斷累計超過10次,就再也無法連線上mysqld服務,為此建議大家設定此值至少大於等於10w 若異常中斷累計超過引數設定的值,有二種解決辦法,執...