MySQL集羣的flexAsynch測試工具安裝和使用

一、編譯安裝flexAsynch
Oracle官方推薦的MySQL Cluster性能測試工具有DBT2,flexAsynch等。此處採用了flexAsynch,它是一種非常好的NDB測試工具。由於Oracle並不提供flexAsynch的二進制文件下載,僅僅在MySQL Cluster的源碼包中提供這個測試工具的源碼,所以必須手動編譯MySQL Cluster才能獲得flexAsynch的執行文件。以下命令都是在RHEL 6.4中以root賬戶權限運行。

1. 下載
cd /root/Downloads
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.4.tar.gz
tar -xvzf mysql-cluster-gpl-7.3.4.tar.gz
cd mysql-cluster-gpl-7.3.4

2. 配置
cmake . -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_NDB_TEST=ON -DWITH_BUNDLED_LIBEVENT=ON -DWITH_BUNDLED_MEMCACHED=ON -DWITH_NDBMTD=ON -DWITH_NDB_TEST=ON

在使用cmake進行配置之前,要確保系統中安裝了libaio-devel,否則執行以下命令:
yum install libaio-devel


3. 編譯
make VERBOSE=1


4. 安裝
make install


5. 拷貝
編譯安裝完成之後,flexAsynch位於/usr/local/mysql/bin目錄中,將其拷貝至MySQL Cluster管理結點的/usr/local/mysql/bin目錄或者其他合適的目錄中,即可對MySQL Cluster進行性能測試。
如果運行flexAsynch時報告找不到某些lib庫的錯誤,那麼需要添加以下內容到/etc/profile文件中:
LD_LIBRARY_PATH=/usr/local/mysql/lib
export LD_LIBRARY_PATH

二、參數說明
   -t:想要啓動的線程總數,默認值爲1

   -p:每個線程的並行事務總數,默認值爲1

   -o:每個循環的事務總數,默認值爲500

   -l:想要運行的循環總數,默認值爲1,0表示無限循環

   -load_factor:索引中的負載因數,以百分比表示(40 ~ 99)

   -a:屬性(數據庫表的列)總數,默認值爲25

   -c:每次事務的操作總數

   -s:每項屬性的大小,默認爲1字節(主鍵大小總是爲1字節,與這項參數值無關)

   -simple:使用簡單讀模式來讀取數據庫

   -dirty:使用髒讀模式來讀取數據庫

   -write:在插入和更新時,使用writeTuple模式

   -n:使用標準表名

   -no_table_create:不要在數據庫中創建表

   -temp:創建表,但不記錄日誌

   -no_hint:不給出事務處理協調器執行到哪兒的提示

   -adaptive:使用自適應的發送算法(默認選項)

   -force:當通信時強制發送

   -non_adaptive:以10毫秒的間隔時間發送

   -local:1表示每個線程都有自己的結點執行;2表示多個結點循環執行每個並行事務;3表示多個結點隨機執行每個並行事務

   -ndbrecord:使用NDB記錄

   -r:額外循環的總數

   -insert:對標準表僅執行插入操作

   -read:對標準表僅執行讀操作

   -update:對標準表僅執行更新操作

   -delete:對標準表僅執行刪除操作

   -create_table:對標準表僅執行創建表操作

   -drop_table:對標準表僅執行刪除表操作

   -warmup_time:測量開始之前的預熱時間

   -execution_time:測量完成時的執行時間

   -cooldown_time:測量完成之後的冷卻時間

   -table:標準表的總數,默認值爲0


常用的參數有-l(測試循環次數)、-t(線程數量)、-p(並行事務數量)、-o(每次循環的事務數量)、-c(每次事務的操作數量),所以性能測試的總操作數量爲l*t*p*o*c。

例如,可以執行以下性能測試:
/usr/local/mysql/bin/flexAsynch -ndbrecord -temp -con 1 -t 4 -p 10 -a 2 -l 3 -r 2

上述性能測試基於以下文章搭建的MySQL集羣:
http://blog.csdn.net/yang1982_0907/article/details/20716845

如果出現以下錯誤:
Configuration error: Error: Could not alloc node id at localhost port 1186: Connection done from wrong host ip 127.0.0.1.

那麼就說明沒有空閒的“slot”可以接受性能測試建立的連接,這時候需要在管理結點的config.ini配置文件中添加更多的“[MYSQLD]”項,可以理解爲將管理結點自身也配置爲SQL結點。可以參考以下資料:
http://serverfault.com/questions/548651/benchmark-mysql-cluster-using-flexasynch-no-free-node-id-found-for-mysqldapi
在config.ini配置文件中添加以下內容,然後重啓MySQL集羣:
[MYSQLD]
NodeId=6
Hostname=192.168.124.141

上述示例性能測試得到的結果爲:


三、其他測試工具
Database Test Suit也是一套優秀的數據庫集羣性能測試工具,DBT-1~5分別對應不同的使用場景對數據庫集羣進行測試。

Database Test 1 (DBT-1: Web Server)
DBT-1是一個基於WEB的事務性能測試工具。它會模擬WEB用戶的活動,例如從一個在線書店瀏覽和購買商品。DBT-1是事務處理性能委員會(TPC)的TPC-W基準測試規範的一個十分有用的實現。一次測試運行得到的結果包括每秒事務數、CPU使用率、I/O活動、內存使用率。

GIT鏈接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt1

Database Test 2 (DBT-2: OLTP)
DBT-2是一個OLTP事務性能測試工具。它模擬一個批發零件供應商,有若干個工作人員會訪問數據庫,更新客戶信息,並且檢查零件庫存情況。DBT-2是TPC的TPC-C基準測試規範的一個十分有用的實現。一次測試運行得到的結果包括每秒事務數、CPU使用率、I/O活動、內存使用率。

GIT鏈接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt2

Database Test 3 (DBT-3: DSS)
DBT-3可用於決策支持系統的工作負載測試。它由一套面向業務的ad-hoc查詢和併發數據修改組成。DBT-3是TPC的TPC-H基準測試規範的一個十分有用的實現。

GIT鏈接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt3

Database Test 4 (DBT-4: Web Services)
DBT-4可用於引用服務器和WEB服務的工作負載測試。它是由一系列類似於一個B2B交易環境的活動所組成的。DBT-4是TPC的TPC-App基準測試規範的一個十分有用的實現。

GIT鏈接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt4

Database Test 5 (DBT-5: OLTP)
DBT-5可用於OLTP的工作負載測試,它模擬一個經紀公司的活動。DBT-5是TPC的TPC-ETM基準測試規範的一個十分有用的實現。

GIT鏈接:
git://osdldbt.git.sourceforge.net/gitroot/osdldbt/dbt5

過段時間會發布Database Test Suit的使用教程,敬請期待!
發佈了166 篇原創文章 · 獲贊 208 · 訪問量 132萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章