【MYSQL備庫恢復速度測試 半同步速度測試】
測試工具:sysbench
測試伺服器:DL380 G7 2臺 master-slave模式
記憶體大小:主機記憶體32G ,INNODB POOL SIZE 20G
硬碟:2塊普通的HDD盤
CPU:12物理core
raid卡寫cache開啟
mysql版本:5.6.19
測試結論:
1)MYSQL半同步複製可以一定程度解決多機資料一致性問題,效能要比非同步複製低很多。同樣的測試指令碼,非同步複製在TPS 10000的情況下,半同步複製只有3000。
2)MYSQL的備機恢復能力非常弱,這是由於它的複製只能單執行緒,而主庫的交易卻是多執行緒併發的。如果想解決這個問題,可以考慮分庫,分庫後可以利用多執行緒。
測試場景一:一主一備,半同步複製下每秒的事務數
半同步複製介紹:
傳統的非同步複製方式,主庫把BINLOG日誌傳送給從庫,並不會等待從庫確認接受完畢,這意味著主伺服器DOWN機後,從機可能存在沒有主庫已經提交的BINLOG日誌。為了解決這個問題,MYSQL 5.5版本引入半同步複製模式,該模式可以確保從伺服器接受完主伺服器的BINLOG日誌並寫入到自己的RELAY LOG中,然後給主伺服器一個反饋,告訴對方已經接受完畢。此模式一定程度上可以確保資料庫切換後不丟失資料,但是影響效能。
涉及引數:
sync_binlog=1
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
rpl_semi_sync_slave_enabled=1
一個事務包含:(一個insert 3個update 1個delete)
測試指令碼:
sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=10000000 --oltp-distinct-ranges=0 --mysql-db=test --mysql-user=root --mysql-password=123456 --oltp-order-ranges=0 --oltp-range-size=100 --oltp-point-selects=0 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-test-mode=complex --max-requests=2000000 --num-threads=25 --max-time=40 run
測試結果:
非同步複製情況下每秒10000以上的TPS
半同步複製情況下每秒接近3000的TPS,跟非同步複製的複製效率差距還是很大的。
如果網路異常,半同步複製會降級為非同步複製,待網路恢復後,自動升級為半同步模式。
如果採用雙master架構,兩臺主機均可以配置為半同步模式。
測試場景二:備庫的複製延遲
涉及引數:
slave_parallel_workers=4
測試結果:
主庫每秒37792的DML操作,備庫每秒8745的複製速度。由於MYSQL的複製針對一個DB只能是單執行緒,因此複製速度非常慢。
如果主庫每秒的DML操作次數超過8000左右就會產生複製延遲。如果備庫本身還有提供外部業務查詢的話,可能會進一步拖慢備庫的複製速度。
如果系統分庫的話,就可以使用並行複製,每多一個複製執行緒,可以提升70%左右的複製速度。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-1364629/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql備份恢復測試MySql
- 【Mysql】xtrabackup 備份和恢復測試MySql
- mysql備份和恢復測試(一)--xtrabackupMySql
- paddleocr速度測試
- goldengate同步資料的同步速度測試記錄Go
- Oracle DG從庫 Rman備份恢復測試Oracle
- DB2備份恢復測試DB2
- oracle備份與恢復測試(五)Oracle
- RMAN備份恢復測試指令碼指令碼
- PDM測試資料庫恢復資料庫
- MySQL 5.5 Semi-sync 半同步複製測試MySql
- 如何測試伺服器的速度伺服器
- 伺服器的速度如何測試伺服器
- JavaScript表格元件載入速度測試JavaScript元件
- mysql效能測試庫的一次CRASH恢復MySql
- SQLSERVER恢復測試SQLServer
- Oracle恢復測試Oracle
- Angular單元測試如何只執行指定的測試用例,提高測試速度Angular
- 測試CMS同步測試CMS同步測試CMS同步
- rman備份恢復-rman恢復資料檔案測試
- hdparm 測試硬碟讀寫速度I/O硬碟
- Oracle RMAN恢復測試Oracle
- 【PG備份恢復】pg_dump命令測試
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(三)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(二)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(一)
- 無程式碼的啟動速度測試 with stagesepx
- 如何測試伺服器的訪問速度伺服器
- SM951 linux centos fio 速度測試LinuxCentOS
- Oracle資料庫的熱備份與完整恢復測試 (2)Oracle資料庫
- Oracle資料庫的熱備份與完整恢復測試 (1)Oracle資料庫
- 資料庫恢復到備份之前測試_RMAN-06556資料庫
- DB2資料庫的備份測試--開始恢復DB2資料庫
- rman 恢復機制與恢復測試
- 如何對Mac進行基礎檢測和速度測試Mac
- 控制檔案恢復測試
- 阿里面試官:知道 MySQL 邏輯備份與恢復測試麼?阿里面試MySql
- 定時做資料庫恢復測試sqlserver資料庫SQLServer