幾個參數(參考http://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html)
- sync_master_info:每間隔多少事務重新整理master.info,如果是table(innodb)設定無效,每個事務都會更新
- sync_relay_log_info:每間隔多少事務重新整理relay-log.info,如果是table(innodb)設定無效,每個事務都會更新
- master_info_repository:記錄主庫binlog的資訊,可以設定FILE(master.info)或者TABLE(mysql.slave_master_info)
- relay_log_info_repository:記錄備庫relaylog的資訊,可以設定FILE(relay-log.info)或者TABLE(mysql.slave_relay_log_info)
測試環境:
- 測試工具:sysbench
- 測試語句:sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua --mysql-table-engine=innodb --oltp-table-count=1 --rand-init=on --num-threads=256 --oltp-table-size=10000000 --rand-type=special --rand-spec-pct=100 --oltp-read-only=off --mysql-user=xxx--mysql-host=x.x.x.x --mysql-password=xxx--mysql-db=test --max-requests=0 --max-time=3600 run
- mysql版本:5.7.12-5-log Percona Server (GPL)
- 機器配置:40core,128G mem,15K raid10
- 測試說明:主備執行個體獨享實體機,未開啟多線程複制,且資料全部在記憶體中,壓力測試将備庫出現延遲的情況下輸出TPS,是為測試結果
測試結果(table/file表示sync_master_info和sync_relay_log_info,數字表示master_info_repository和relay_log_info_repository):
table | 2400 |
file && 1 | 1200 |
file && 10 | 2100 |
file && 100 | 2400 |
file && 1000 | 2450 |
file && 10000(default) | 2500 |
使用table的安全性和性能兩者結合的最好的,前提是使用innodb表