BenchmarkSQL是一款經典的開源數據庫測試工具,內嵌了TPCC測試腳本,可以對EnterpriseDB、PostgreSQL、MySQL、Oracle以及SQL Server等數據庫直接進行測試。
二、測試前提
1. 安裝JDK。因為BenchmarkSQL本身是使用Java語言編寫的,所以如果在Linux系統下還沒有安裝JDK的話,我們首先需要對其進行安裝;
2. 安裝PostgreSQL數據庫系統。俗話說巧婦難為無米之炊,測試之前肯定需要有測試對象,本文是測試PG系統,故需安裝有PG;
3. 安裝BenchmarkSQL
可到http://sourceforge.net中搜索BenchmarkSQL即可下到,windows,linux版均有。我下載的是linux版的軟件包BenchmarkSQL-2.3.3.zip,unzip解壓后可以在README文件中看到該軟件的使用說明,下面用中文具體介紹一下它的使用方法。
三、測試步驟
1. 啟動待測試的數據庫系統,這里即指啟動PostgreSQL
2. 在BenchmarkSQL-2.3.3/run目錄下找到postgres.properties配置文件,修改該文件如下:
driver=org.postgresql.Driver
conn=jdbc:postgresql://localhost:5432/test #鏈接數據庫地址
user=postgres #鏈接數據庫用戶名
password=password #密碼
如果想測試其他數據庫系統,則修改其他相應的配置文件即可,如oracle.properties等等。
3. 創建TPC-C基礎表(即上篇博文中介紹的TPC-C模擬場景中9張表)
命令: runSQL.sh postgres.properties sqlTableCreates
4. 向數據庫中導入指定大小的數據(參考資料2中此步有個小問題,多寫一個等號)
命令:loadData.sh postgres.properties numWarehouses 10
numWarehouse指的是倉庫數(具體含義見上篇博文),默認為1,導入9張表的數據大小大概70多M,
當 numWarehouse為10時,數據大小可以近似當作1GB數據。
5. 為基礎表創建必要的索引
命令: runSQL.sh postgres.properties sqlIndexCreates
6. 運行runBenchmark.sh借助GUI程序測試數據庫
命令:runBenchmark.sh postgres.properties
注意:不要忘記設置圖形界面的倉庫數時要與第4步中設置的數量相符;此外,測試的結果報告除了顯示在圖形界面有顯示以外,還在run/reports目錄下有備份,隨時可以查閱。
四、BenchmarkSQL界面說明
Control-Database:配置所要鏈接的數據庫,默認會讀取之前我們修改的配置文件,故此處不用動
Control-Terminals:配置終端數,倉庫數,是否顯示Debug信息,指定測試時間以及每終端事務等(每終端事務執行方式目前我也沒理解,望交流)
Control-Weights:配置TPC-C測試中五中事務的比重(界面中只要配置4種),一般按默認比例測試即可
Control-Controls:控制器設置,點擊Create Terminals創建一個終端;點擊Start Transaction開始基准測試,點擊Stop Transaction停止基准測試
Error:錯誤信息顯示
Terminals:各個終端日志查看
注意:
1. 測試完后在界面下方會顯示簡要的測試結果,包括平均tpmC值(每分鍾執行的事務數),當前tpmC值,內存使用情況等等;出結果以后盡量記錄下來,以為之后如果亂點界面按鈕的話,測試結果將會被重寫(感覺是一個bug);
參考資料:
1.http://blog.sina.com.cn/s/blog_4485748101019wsh.html
2.http://blog.sina.com.cn/s/blog_48c95a190100j35g.html
3.http://www.docin.com/p-242425868.html
二、測試前提
1. 安裝JDK。因為BenchmarkSQL本身是使用Java語言編寫的,所以如果在Linux系統下還沒有安裝JDK的話,我們首先需要對其進行安裝;
2. 安裝PostgreSQL數據庫系統。俗話說巧婦難為無米之炊,測試之前肯定需要有測試對象,本文是測試PG系統,故需安裝有PG;
3. 安裝BenchmarkSQL
可到http://sourceforge.net中搜索BenchmarkSQL即可下到,windows,linux版均有。我下載的是linux版的軟件包BenchmarkSQL-2.3.3.zip,unzip解壓后可以在README文件中看到該軟件的使用說明,下面用中文具體介紹一下它的使用方法。
三、測試步驟
1. 啟動待測試的數據庫系統,這里即指啟動PostgreSQL
2. 在BenchmarkSQL-2.3.3/run目錄下找到postgres.properties配置文件,修改該文件如下:
driver=org.postgresql.Driver
conn=jdbc:postgresql://localhost:5432/test #鏈接數據庫地址
user=postgres #鏈接數據庫用戶名
password=password #密碼
如果想測試其他數據庫系統,則修改其他相應的配置文件即可,如oracle.properties等等。
3. 創建TPC-C基礎表(即上篇博文中介紹的TPC-C模擬場景中9張表)
命令: runSQL.sh postgres.properties sqlTableCreates
4. 向數據庫中導入指定大小的數據(參考資料2中此步有個小問題,多寫一個等號)
命令:loadData.sh postgres.properties numWarehouses 10
numWarehouse指的是倉庫數(具體含義見上篇博文),默認為1,導入9張表的數據大小大概70多M,
當 numWarehouse為10時,數據大小可以近似當作1GB數據。
5. 為基礎表創建必要的索引
命令: runSQL.sh postgres.properties sqlIndexCreates
6. 運行runBenchmark.sh借助GUI程序測試數據庫
命令:runBenchmark.sh postgres.properties
注意:不要忘記設置圖形界面的倉庫數時要與第4步中設置的數量相符;此外,測試的結果報告除了顯示在圖形界面有顯示以外,還在run/reports目錄下有備份,隨時可以查閱。
四、BenchmarkSQL界面說明
Control-Database:配置所要鏈接的數據庫,默認會讀取之前我們修改的配置文件,故此處不用動

Control-Terminals:配置終端數,倉庫數,是否顯示Debug信息,指定測試時間以及每終端事務等(每終端事務執行方式目前我也沒理解,望交流)

Control-Weights:配置TPC-C測試中五中事務的比重(界面中只要配置4種),一般按默認比例測試即可

Control-Controls:控制器設置,點擊Create Terminals創建一個終端;點擊Start Transaction開始基准測試,點擊Stop Transaction停止基准測試

Error:錯誤信息顯示

Terminals:各個終端日志查看

注意:
1. 測試完后在界面下方會顯示簡要的測試結果,包括平均tpmC值(每分鍾執行的事務數),當前tpmC值,內存使用情況等等;出結果以后盡量記錄下來,以為之后如果亂點界面按鈕的話,測試結果將會被重寫(感覺是一個bug);
2.運行過程中如果想要修改終端數等參數,最好關閉GUI界面,重新運行runBenchmark.bat
首先,在Linux下安裝JDK。因為BenchmarkSQL本身是使用Java語言編寫的,所以如果在Linux系統下還沒有安裝JDK的話,我們首先需要對其進行安裝。
1)下載Linux Platform JDK(如jdk-6u20-linux-i586.bin);
2)鍵入命令./jdk-6u20-linux-i586.bin運行安裝程序,這時會有一段Sun的協議,敲幾次Enter鍵,當詢問是否同意的時候敲Yes就可以了,之后程序會自行安裝JDK並創建一個文件夾jdk1.6.0-20;
3)將安裝后的文件夾移動到一個指定的地方,如mv jdk1.6.0-20 /usr/local,當然這一步不是必須的;
4)設置環境變量。環境變量的設置方法有多種如用export直接在shell下設置、修改文件.bashrc設置以及修改/etc/profile設置,我們這里直接使用最后一種方法,雖然第二種方法比較受推崇。我們在profile文件末尾直接添加如下內容:
JAVA_HOME=/usr/local/jdk1.6.0-20
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
然后,在Linux下安裝Eclipse。因為BenchmarkSQL就是Java Project,在使用時直接加載到Eclipse中是最簡單的運行的方式,所以我們需要安裝Linux版本的Eclipse。
1)下載Eclipse for Linux(如eclipse-java-galileo-SR2-Linux-gtk.tar.gz);
2)解壓得到eclipse目錄。
3)為了讓每一個賬號都可以使用Eclipse,我們需要寫一個腳本eclipse.sh,其內容如下:
Eclipse安裝目錄/eclipse -vm JDK安裝目錄/bin/java -data ~/workspace
這里-vm參數用於指定使用哪一個jvm來執行Eclipse,-data參數用於指定Eclipse要將項目存儲在哪一個目錄下,在此為用戶根目錄下的workspace目錄。
4)將eclipse.sh加上權限755,以便可以執行。
chmod 755 eclipse.sh
5)啟動Eclipse。
./eclipse.sh
最后,我們使用BenchmarkSQL對PostgreSQL進行測試(這里默認PostgreSQL已經安裝,安裝方法可參考本人之見的博客)。
1)下載BenchmarkSQL-2.3.2;
2)在Eclipse中創建一個Java Project並選擇從已有工程創建,如下圖所示;
3)修改postgres.properties文件,即設置正確的數據庫名和密碼,如下圖所示;
4)運行BenchmarkSQL進行測試。我們首先進入到BenchmarkSQL-2.3.2/run的目錄下,然后運行如下命令:
./runSQL.sh postgres.properties sqlTableCreates
此命令用於創建我們進行TPCC測試所需的數據庫表
./loadData.sh postgres.properties numWarehouses=10
此命令用於加載我們進行TPCC測試所需的數據
./runSQL.sh postgres.properties sqlIndexCreates
此命令用於創建我們進行TPCC測試所需的索引
./runBenchmark.sh postgres.properties
開始TPCC測試,這時會跳出一個對話框,用戶可以根據自己的測試需要設定相關的warehouse數目和terminal數目,然后進行測試。
1)下載Linux Platform JDK(如jdk-6u20-linux-i586.bin);
2)鍵入命令./jdk-6u20-linux-i586.bin運行安裝程序,這時會有一段Sun的協議,敲幾次Enter鍵,當詢問是否同意的時候敲Yes就可以了,之后程序會自行安裝JDK並創建一個文件夾jdk1.6.0-20;
3)將安裝后的文件夾移動到一個指定的地方,如mv jdk1.6.0-20 /usr/local,當然這一步不是必須的;
4)設置環境變量。環境變量的設置方法有多種如用export直接在shell下設置、修改文件.bashrc設置以及修改/etc/profile設置,我們這里直接使用最后一種方法,雖然第二種方法比較受推崇。我們在profile文件末尾直接添加如下內容:
JAVA_HOME=/usr/local/jdk1.6.0-20
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
然后,在Linux下安裝Eclipse。因為BenchmarkSQL就是Java Project,在使用時直接加載到Eclipse中是最簡單的運行的方式,所以我們需要安裝Linux版本的Eclipse。
1)下載Eclipse for Linux(如eclipse-java-galileo-SR2-Linux-gtk.tar.gz);
2)解壓得到eclipse目錄。
3)為了讓每一個賬號都可以使用Eclipse,我們需要寫一個腳本eclipse.sh,其內容如下:
Eclipse安裝目錄/eclipse -vm JDK安裝目錄/bin/java -data ~/workspace
這里-vm參數用於指定使用哪一個jvm來執行Eclipse,-data參數用於指定Eclipse要將項目存儲在哪一個目錄下,在此為用戶根目錄下的workspace目錄。
4)將eclipse.sh加上權限755,以便可以執行。
chmod 755 eclipse.sh
5)啟動Eclipse。
./eclipse.sh
最后,我們使用BenchmarkSQL對PostgreSQL進行測試(這里默認PostgreSQL已經安裝,安裝方法可參考本人之見的博客)。
1)下載BenchmarkSQL-2.3.2;
2)在Eclipse中創建一個Java Project並選擇從已有工程創建,如下圖所示;

3)修改postgres.properties文件,即設置正確的數據庫名和密碼,如下圖所示;

4)運行BenchmarkSQL進行測試。我們首先進入到BenchmarkSQL-2.3.2/run的目錄下,然后運行如下命令:
./runSQL.sh postgres.properties sqlTableCreates
此命令用於創建我們進行TPCC測試所需的數據庫表
./loadData.sh postgres.properties numWarehouses=10
此命令用於加載我們進行TPCC測試所需的數據
./runSQL.sh postgres.properties sqlIndexCreates
此命令用於創建我們進行TPCC測試所需的索引
./runBenchmark.sh postgres.properties
開始TPCC測試,這時會跳出一個對話框,用戶可以根據自己的測試需要設定相關的warehouse數目和terminal數目,然后進行測試。
參考資料:
1.http://blog.sina.com.cn/s/blog_4485748101019wsh.html
2.http://blog.sina.com.cn/s/blog_48c95a190100j35g.html
3.http://www.docin.com/p-242425868.html