久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何實現sysbench壓測MyCAT的shell腳本

132次閱讀
沒有評論

共計 2768 個字符,預計需要花費 7 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下如何實現 sysbench 壓測 MyCAT 的 shell 腳本,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

中間件 MyCAT 自己之前也簡單測試過,總結過。最近做分布式測試,我大體分了三個階段:

一. 環境部署,MHA 和 MyCAT 的融合,讀寫分離

二.sharding 策略和分庫分表的壓力測試

三. 結合業務做分庫分表的模擬測試

尤其是分庫分表的測試方面,目前還是存在一些需要確認的點。

我在測試之前所想,做這個分布式測試的意義是什么?是想通過測試來論證什么,希望達到什么目標,是否穩定,功能是否滿足需求,這些都是需要反復明確的地方。

當然,這些我沒有留太多的時間下來,我希望是速戰速決,但是測試質量還是需要基本保證,那就是測試的場景基本要全面一些。

測試工具的選擇上,我目前先選擇了 sysbench, 原生支持,操作起來相對容易控制,尤其是支持的場景很豐富,在一些流水型數據的業務中,我如果側重測試密集型插入的場景,就可以很輕松的使用 insert 的模板來測試。

MyCAT 的部署上本身是很簡單的,無非是一些基本的環境配置。如果是一個新手,從安裝 Java 到部署 MyCAT, 如果全程跟進,基本兩個小時都能夠拿下來。部署安裝參見之前的一篇文章 Mycat 讀寫分離配置實踐

而 sharding 策略的配置還是需要花一些時間的,首先是你得理解它的 sharding 邏輯。大體明白之后,事情就很簡單了。

測試的場景,我是這樣來規劃的,首先在 3 個物理機上面部署了 MySQL 服務,每個服務器是一個 sharding 節點,然后有另外一臺服務器部署了 MyCAT, 這樣就是一個簡單的分布式 sharding 環境。

要壓測基本的性能情況,有幾種測試的方法,假設測試的表為:sharding_table, 存在的數據庫為 db1,db2,db3,db4

測試的場景就會很豐富.

場景 1:

場景 2:

在之前的基礎上進行擴展,按照這個進度,基本就是 3N 的方式,所以就會有 3,6,9,12 這樣的一些分布方式,這樣的好處就是前期規劃了,后期如果出現瓶頸,可以很方便的拆分。

要完成這些工作,每個場景測試偷工減料測試幾分鐘也是不行的,每個場景最起碼得 1 個小時,按照這個要求,至少得 20 個小時,人是鐵飯是鋼,我不能一直守在那里。所以就在下班前寫了個腳本,讓它慢慢跑吧,明天上班收數。

我前期做了快速迭代,把每個場景都大體跑了下,得到了一個基本的數據分布,然后細化到每個場景一個小時來收到相對完整的數據情況。

腳本如下,我配置了 10 個 sbtest[N] 的表, 如果是做分片,3 個服務器節點切分成 12 個 sharding 分片,那就是 120 個表。測試的場景我是分為不同的 sharding 分片,不同的線程數。需要提前配置下 rules.xml 和 schema.xml 我是準備了好幾份這個配置文件,到時候直接替換就行。

#!/bin/bash

time= 3600

sleep_time= 60

function clean_data

{

echo $time

echo ${sleep_time}

mysql -umycat_user -pmycat_user -P8066 -h227 .0.0.1 EOF

use sbtestdb1

delete from sbtest1;

delete from sbtest2;

delete from sbtest3;

delete from sbtest4;

delete from sbtest5;

delete from sbtest6;

delete from sbtest7;

delete from sbtest8;

delete from sbtest9;

delete from sbtest10;

EOF

sleep ${sleep_time}

}

function sysbench_test

{

clean_data

shard_no=$ 1

thread_no=$ 2

/usr/bin/sysbench /usr/share/sysbench/oltp_insert.lua –db-driver=mysql

–mysql_storage_engine=innodb –mysql-user=mycat_user

–mysql-password=xxxx –mysql-port= 8066 –mysql-host= 127.0.0.1

–mysql-db=sbtestdb1 –auto_inc= 1 –tables= 10 –table-size= 50000000

–threads=${thread_no} –time=$time –report-interval= 5

run |tee sysbench_${thread_no}_sharding_${shard_no}.log

sleep ${sleep_time}

}

function change_sharding

{

shard_no=$ 1

date

echo SHARDING_NO: ${shard_no}

mv /usr/local/mycat/conf/schema.xml /usr/local/mycat/conf/schema.xml.tmp /dev/null

cp /usr/local/mycat/conf/schema.xml.sharding_${shard_no} /usr/local/mycat/conf/schema.xml /dev/null

/usr/local/mycat/bin/mycat restart /dev/null

sleep ${sleep_time}

}

change_sharding 12

sysbench_test 12 16

sysbench_test 12 32

sysbench_test 12 64

sysbench_test 12 98

sysbench_test 12 128

change_sharding 9

sysbench_test 9 16

sysbench_test 9 32

sysbench_test 9 64

sysbench_test 9 98

sysbench_test 9 128

change_sharding 6

sysbench_test 6 16

sysbench_test 6 32

sysbench_test 6 64

sysbench_test 6 98

sysbench_test 6 128

change_sharding 3

sysbench_test 3 16

sysbench_test 3 32

sysbench_test 3 64

sysbench_test 3 98

sysbench_test 3 128

以上是“如何實現 sysbench 壓測 MyCAT 的 shell 腳本”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計2768字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 海丰县| 新昌县| 崇文区| 信宜市| 陆丰市| 玉林市| 辽宁省| 分宜县| 钟山县| 建湖县| 安庆市| 青龙| 正安县| 鄱阳县| 台湾省| 宿州市| 彰化县| 钟祥市| 拉萨市| 庆城县| 双鸭山市| 易门县| 赤峰市| 四川省| 扎囊县| 图们市| 英德市| 拉孜县| 白朗县| 中江县| 新野县| 长宁县| 甘肃省| 芒康县| 沙坪坝区| 新兴县| 高唐县| 崇文区| 江津市| 离岛区| 青神县|