天天看點

幾個複制參數對性能的影響

幾個參數(參考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表