MySQL Backup--Xtrabackup備份限速問題
在innobackupex 2.4版本中,有兩個引數用來限制備份速度:
--throttle=# This option specifies a number of I/O operations (pairs of read+write) per second. It accepts an integer argument. It is passed directly to xtrabackup's --throttle option. --parallel=# On backup, this option specifies the number of threads the xtrabackup child process should use to back up files concurrently. The option accepts an integer argument. It is passed directly to xtrabackup's --parallel option. See the xtrabackup documentation for details.
在percoan官方網站上對throttle引數有如下解釋:
Although xtrabackup does not block your database’s operation, any backup can add load to the system being backed up. On systems that do not have much spare I/O capacity, it might be helpful to throttle the rate at which xtrabackup reads and writes data. You can do this with the xtrabackup --throttle option. This option limits the number of chunks copied per second. The chunk size is 10 MB. https://www.percona.com/doc/percona-xtrabackup/2.4/advanced/throttling_backups.html
如果想將備份速度控制在50MB/s以下的話,那麼throttle引數需要設定為5,使用該引數備份開始後IO使用情況為:
備份程式一直在寫xtrabackup_logfile檔案,如果備份例項的資料操作較多時,會導致備份程式一直處於該狀態無法繼續後面操作。
PS: 備份目錄下xtrabackup_logfile檔案的增長速度和引數throttle密切相關。
在備份例項停止全部操作情況,使用throttle=5進行備份,備份進行執行10分鐘還在處理xtrabackup_logfile檔案,備份效率無法保證。
調整為throttle=10後,備份過程中期IO使用情況為:
10*10MB/S=100MB/S=102400KB/S,證明throttle=10的確有效。
引數parallel使用多個程式來備份資料檔案,在磁碟速度夠快情況下,parallel能有效提升備份效率,但無法進行限速操作。
======================================================================================
由於引數throttle設定較低會導致無法正常備份,而設定較高又無法起到限速目的,因此考慮使用pv方式來限速。
PV 由Andrew Wood 開發,是 Pipe Viewer 的簡稱,經過管道顯現資料處理進展的資訊,控制管道資料的流入流出速度,就到控制備份的速度。
為驗證pv限速和對比stream備份和普通備份的差距,設計下面三種測試方案:
方案1:使用stream=tar流時備份+使用tar -x解壓到本地+使用PV限制速度200M(下圖紅色框標識)
方案2:不使用stream流式備份+備份本地+不限制速度(下圖綠色框標識)
方案3:使用stream=tar流時備份+使用tar -x解壓到本地+不限制速度(下圖黃色框標識)
測試指令碼為:
## 使用stream=tar流時備份 ## 使用tar -x解壓到本地 ## 使用PV限制速度200M innobackupex \ --defaults-file="/export/servers/mysql/etc/my.cnf" \ --host="localhost" \ --port=3358 \ --user='root' \ --password='root_password' \ --stream=tar \ "/export/bak/tmp/" |pv -q -L200m | tar -x ## 不使用stream流式備份 ## 不限制速度 innobackupex \ --defaults-file="/export/servers/mysql/etc/my.cnf" \ --host="localhost" \ --port=3358 \ --user='root' \ --password='root_password' \ "/export/bak/full/" ## 使用stream=tar流時備份 ## 使用tar -x解壓到本地 ## 不限制速度 innobackupex \ --defaults-file="/export/servers/mysql/etc/my.cnf" \ --host="localhost" \ --port=3358 \ --user='root' \ --password='root_password' \ --stream=tar \ "/export/bak/tmp/" | tar -x
備份對CPU的影響:
備份對IO讀寫次數的影響:
備份對IO讀寫速度的影響:
對比發現:
1、使用pv命令可以有效限制備份讀寫速度,但不能精確限制讀寫速度(限速200MB/S,實際速度170MB/S)
2、使用stream壓縮+解壓進行備份時,CPU有輕微增長,但影響並不明顯。
3、在不限速情況下,使用stream壓縮+解壓的備份效率遠低於普通備份(上面測試環境下接近差一倍)
4、使用stream壓縮+解壓進行備份時,可以增減備份執行緒parallel來提高備份效率。
相關文章
- 淺談MySQL備份字符集的問題MySql
- 解決linux crontab備份mysql失敗的問題LinuxMySql
- 記一次mysql熱備份xtrabackup(沒有解決問題)MySql
- TSM + Oracle備份出現問題Oracle
- mysql的冷備份與熱備份MySql
- Mysql備份系列MySql
- Java備份MySQLJavaMySql
- MySQL:xtrabackup備份MySql
- XtraBackup備份MySQLMySql
- Mysql增量備份MySql
- mysql備份工具MySql
- mysql備份--mysqlhotcopyMySql
- 遷移後帶庫備份問題
- Mysql備份與恢復(1)---物理備份MySql
- 初探MySQL資料備份及備份原理MySql
- MySQL · 物理備份 · Percona XtraBackup 備份原理MySql
- 解決百度網盤限速問題
- Java中CMD命令來備份mysql資料庫備份檔案出來為0位元組問題JavaMySql資料庫
- MySQL備份與主備配置MySql
- RMAN備份中不同版本是否備份空資料塊的問題
- MySQL 定時備份MySql
- Mysql備份恢復MySql
- mysql5.6備份MySql
- mysql innobackupex 物理備份MySql
- xtrabackup備份mysql innodbMySql
- MySQL備份類別MySql
- MySQL主從備份MySql
- mysql備份還原MySql
- 【Mysql】xtrabacupk備份原理MySql
- mysql 備份恢復MySql
- mysql備份指令碼MySql指令碼
- MySQL資料備份MySql
- 【MySQL】MySQL備份和恢復MySql
- 遷移後帶庫備份問題(二)
- SQL 問題與解答:備份和設定SQL
- AutoMySQLBackup加密備份解密問題淺析MySql加密解密
- Mysql備份與恢復(2)---邏輯備份MySql
- MySQL備份之分庫分表備份指令碼MySql指令碼