首頁>技術>

背景條件:使用 sysbench 壓力工具對 10 張 1 萬記錄表進行增改刪操作使用 TC 工具來模擬高延時,低頻寬場景

工具準備:

1.tc # 模擬網路頻寬受限以及增加延遲

2.iperf3 # 驗證網路頻寬

3.sysbench # 製造資料壓力

環境準備:

1.DTLE 版本

3.20.10.0

2.伺服器

3.在兩臺 DTLE 伺服器上新增網路頻寬限制以及增加延遲(經測試網路延遲配置只對傳送有效,故需要在源端和目標端同時新增 TC 規則,每端延遲配置為預期延遲的一半)。

#!/usr/bin/env bash# Name of the traffic control command.TC=`which tc`# The network interface we're planning on limiting bandwidth.IF=eth0             # Interface# Download limitDNLD=2mbit          # DOWNLOAD Limit# Upload limitUPLD=2mbit          # UPLOAD Limit# IP address of the machine we are controllingIP=10.186.63.145     # Host IP#IP=10.186.63.20# Network latencyDELAY=125ms# Filter options for limiting the intended interface.U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"$TC qdisc add dev $IF root handle 1: htb default 1$TC class add dev $IF parent 1: classid 1:10 htb rate $DNLD$TC class add dev $IF parent 1: classid 1:20 htb rate $UPLD$TC qdisc add dev $IF parent 1:10 handle 10: netem delay $DELAY$TC qdisc add dev $IF parent 1:20 handle 20: netem delay $DELAY$U32 match ip dst $IP/32 flowid 1:10$U32 match ip src $IP/32 flowid 1:20

4.驗證配置生效

DTLE 源端伺服器 ping DTLE 目標端伺服器DTLE 目標端伺服器 ping DTLE 源端伺服器DTLE 源端到 DTLE 目標端網路頻寬 DTLE 目標端伺服器 iperf3 -s DTLE 源端伺服器 iperf3 -c 10.186.63.145DTLE 目標端到 DTLE 源端網路頻寬 DTLE 目標端伺服器 iperf3 -s DTLE 源端伺服器 iperf3 -c 10.186.63.145 -R

5.分別在伺服器 10.186.63.20 和 10.186.63.145 部署 DTLE 組成叢集

場景一:不同網路延遲下資料庫同步延遲網路頻寬 2Mbits/s、資料壓力 300QPS(binlog 產生速率為 1.47Mbit/s(約 15GB/天))持續壓測 120 秒透過改變 TC 指令碼來模擬不同網路延遲情況下對 DTLE 資料同步延遲的影響job 配置中 GroupTimeout 的值為網路延遲的 2 倍減 10ms(例如:網路延遲為 100ms 則 GroupTimeout=190)job 配置中 GroupMaxSize 的值為 512000 (500KB)

注:圖中複製延遲為 120 秒壓力測試中的最高複製延遲時間

小結:

1.不同的網路延時,透過 DTLE 複製延遲在 2 秒內

2.特殊限制場景:

網路頻寬不足的場景下,複製延時會線性增長

場景二:極限頻寬下,MySQL 原生複製和 DTLE 壓力對比網路頻寬 2Mbits/s、網路延遲 250ms在不產生線性遞增複製延遲的條件下,所能支援的最大資料壓力job 配置中 GroupTimeout 的值為 490(網路延遲的 2 倍減 10ms)job 配置中 GroupMaxSize 的值為 1024000 (1000KB)jbo 配置中 ReplChanBufferSize 的值為 600

注:718QPS 相當於每秒產生 452KB binlog(3.6Mbit/s),367 QPS 相當於每秒產生 231KB binglog(1.8Mbit/s)。

小結:

1.在網路受限的條件下,MySQL 原生複製在 1.8Mbit/s 的壓力下,到達最高壓力

2.在網路受限的條件下,DTLE 複製在 2.7Mbit/s 的壓力下,到達最高壓力

3.DTLE 利用分組和壓縮,在網路受限場景下,能承載更高的複製壓力,更好的適應窄頻寬的場景

場景三:頻寬不受限,MySQL 原生複製和 DTLE 使用頻寬對比網路延遲 250ms、無頻寬限制在不同資料壓力下,傳輸佔用的網路頻寬job 配置中 GroupTimeout 的值為 490job 配置中 GroupMaxSize 和 ReplChanBufferSize 的值隨壓力增加而增大

小結:

1.完成同等資料量的傳輸複製,DTLE 相比 MySQL 原生複製提供更低的頻寬佔用;頻寬佔用率最高是 MySQL 原生複製的近 1/3。

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 搜尋演算法之深度優先、廣度優先、約束條件、限界函式及相應演算法