如何進行MySQL并行復(fù)制測試

今天就跟大家聊聊有關(guān)如何進行MySQL并行復(fù)制測試,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的昭平網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

   對于主從延遲,其實一直以來就是一個頗有爭議的話題,在MySQL陣營中,如果容忍一定的延遲的場景,通過主從來達到讀寫分離是個很不錯的方案,但是延遲率到底有多高可以接受,新版本中的并行復(fù)制效果怎么樣,在不同的版本中是否有改變,我們能否找到一些參考的數(shù)據(jù)來佐證,這一點上我們可以通過一些小測試來說明。

   首先來為了基本按照同一個參考標準,我們就在同一臺服務(wù)器上安裝了5.6,5.7的MySQL服務(wù),另外一臺服務(wù)器上搭建了從庫。

   數(shù)據(jù)庫版本為5.6.23 Percona分支, 5.7.17 MySQL官方版本

服務(wù)器上安裝了pt工具用來檢測主從延遲,安裝了新版本的sysbench來做加壓測試。

      主庫:  10.127.128.227   RHEL6U3  32G  R710
      從庫:  10.127.128.78    RHEL6U3  32G   R710      為了基本能夠達到同一個基準啦進行測試,我先啟動5.6的數(shù)據(jù)庫服務(wù),測試完畢,啟動5.7的服務(wù)。避免多實例的并行干擾。

初始化數(shù)據(jù)采用了類似下面的腳本,5.6, 5.7版本中都差不多。

創(chuàng)建了10個表,然后插入了500萬數(shù)據(jù)來測試。

sysbench /home/sysbench/sysbench-1.0.3/src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-socket=/home/mysql_5.7.17/mysql.sock --mysql-host=localhost --mysql-db=sysbenchtest --tables=10 --table-size=5000000 --threads=50 prepare

加壓測試使用如下的sysbench腳本,持續(xù)時間300秒sysbench /home/sysbench/sysbench-1.0.3/src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-socket=/home/mysql_5.7.17/mysql.sock --mysql-host=localhost --mysql-db=sysbenchtest --tables=10 --table-size=5000000 --threads=50 --report-interval=5 --time=300 run查看主從延遲,使用pt-heartbeat來完成。

開啟后臺任務(wù):

pt-heartbeat h='10.127.128.78',u='pt_checksum',p='pt_checksum',P=3307 -D sysbenchtest --create-table --interval=1 --update --replace --daemonize開啟主從延遲檢測:

pt-heartbeat h='10.127.128.78',u='pt_checksum',p='pt_checksum',P=3308 -D sysbenchtest --table=heartbeat --monitor --master-server-id=3308 --frames=5s --interval=5 
因為主從復(fù)制在5.6, 5.7還是存在一定的差別,我們就分別測試單線程和多線程復(fù)制的差別和改進點。

并行復(fù)制的基本配置

5.6 開啟并行復(fù)制

mysql>stop slave;
mysql>set global slave_parallel_workers=8;
mysql>start slave;

5.7 開啟并行復(fù)制

其中值得一提的是5.7做了一些改進,slave-parallel-type= DATABASE /LOGICAL_CLOCK
-- DATABASE -- 基于庫級別的并行復(fù)制 與5.6相同
-- LOGICAL_CLOCK -- 邏輯時鐘,主上怎么并行執(zhí)行的,從上也是怎么并行回放的。所以我們開啟了logical_clock.

mysql> stop slave;
mysql> set global slave_parallel_type='LOGICAL_CLOCK';
mysql> set global slave_parallel_workers=8;
mysql> stop slave;

并行復(fù)制的效果對比圖

以下是得到的一個概覽圖,橫軸是測試時間,縱軸是延遲時間。

總體來看,MySQL 5.6中的并行復(fù)制效率提升不夠明顯,5.7中的提升效果非常顯著。

如何進行MySQL并行復(fù)制測試

看完上述內(nèi)容,你們對如何進行MySQL并行復(fù)制測試有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

本文題目:如何進行MySQL并行復(fù)制測試
網(wǎng)頁地址:http://muchs.cn/article48/gceeep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站設(shè)計、網(wǎng)站維護Google、網(wǎng)站排名網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化