NewSQL資料庫壓力測試工具系列——Sysbench

IT-老兵發表於2018-10-31

      資料庫是企業應用系統的重要基礎支撐軟體,企業在進行技術選型的時候都是格外慎重的,需要綜合考慮多個方面,此外還需要做多種層次的測試。前面的一系列文章跟大家介紹了分散式NewSQL資料庫領域的兩個典型產品——TiDB和CockroachDB,大家可以通過一些負載測試來考察他們的效能表現。從本文開始,向大家介紹幾個常見的資料庫測試方法,包括:sysbench、TPCC、ycsb和一個模擬銀行轉賬示例測試程式。大家可以根據自己的情況進行選擇。本文先介紹如何使用sysbench對TiDB和CockroachDB進行壓力測試。

   1. sysbench簡介

      Sysbech是一個流行的開源效能基準測試工具,支援併發多執行緒,支援多種主流資料庫(MySQL、PostgreSQL、Oracle等)。它是很常用的效能測試工具,主要包括以下幾種測試:

  • cpu效能
  • 磁碟io效能
  • 排程程式效能
  • 記憶體分配及傳輸速度
  • POSIX執行緒效能
  • 資料庫效能(比如:OLTP基準測試)

      本文只介紹針對資料庫的效能測試,下面將向大家介紹sysbench的安裝部署方法以及針對TiDB和CockroachDB的測試方法示例。本文只是拋磚引玉,對於sysbech的很多詳細介紹還需要大家百度或google以便進一步深入學習(後面的參考給定的連結,大家可以參考)。

 

   2. 安裝   

   (1) 環境說明

   示例假定環境如下:

       作業系統:CentOS 7.4

       sysbench:1.0.14

       TiDB:2.0.x或2.1.x

       CockroachDB:2.0.x或2.1.x

       說明:需要檢查作業系統是否已經安裝了必要的包:make、 automake、 libtool、 pkgconfig、 libaio-devel

                  對於mysql,需要安裝mysql-community-devel包;對於postgresql需要安裝postgresql-devel包

   (2) 安裝方法

   下載sysbench軟體包:

https://github.com/akopytov/sysbench/archive/1.0.14.tar.gz

    解壓軟體包:

    tar xvfz 1.0.14.tar.gz

     然後進入解壓目錄,執行

./autogen.sh

./configure

./configure --with-pgsql    

make -j

make install

        說明:假設最終解壓後的目錄是/home/bechmark/sysbench-1.0.14。make install之後sysbench的可執行程式被安裝到/usr/local/bin目錄下。

    3. 執行測試 

      (1) prepare(準備測試資料)

--mysql/tidb

sysbench --test=./tests/include/oltp_legacy/oltp.lua --mysql-db=test --mysql-user=root --mysql-host=192.168.13.171 --mysql-port=4000 --oltp-tables-count=3 --oltp-table-size=100000 prepare  

 

--postgresql/cockroachdb

sysbench --test=./tests/include/oltp_legacy/oltp.lua --pgsql-db=tpcc --pgsql-user=root --pgsql-host=192.168.13.171 --pgsql-port=26257 --oltp-tables-count=3 --oltp-table-size=100000 --db-driver=pgsql prepare

     (2) run(加壓測試)

--mysql/tidb

sysbench --test=/usr/local/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-db=test --mysql-user=root --mysql-host=192.168.1.161 --mysql-port=4000 --oltp-tables-count=3 --oltp-table-size=100000 --num-threads=10 --max-time=60 --report-interval=10 --oltp-read-only=off run

 

--postgresql/cockroachdb

sysbench --test=./tests/include/oltp_legacy/oltp.lua --pgsql-db=tpcc --pgsql-user=root --pgsql-host=192.168.13.171 --pgsql-port=26257 --oltp-tables-count=3 --oltp-table-size=100000 --num-threads=10 --max-time=60 --report-interval=10 --oltp-read-only=off run

參考:

https://github.com/akopytov/sysbench

https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html

 

相關文章