tpc-c測試環境搭建

搭建TPC-C環境

一、    準備

操作系統 :Linux, 內核版本2.6

需要軟件:tpccuva-1.2.3, postgresql-8.1.15, gnuplot-4.2.5

tccuva是實現標準TPC-C

Postgresql是最穩定的開源sql數據庫。

gunplot是一個數學軟件,可以根據數據畫出相應的函數圖形。

 

二、    安裝

1.   創建用戶

useraddnewuser

passwdnewuser

newuser身份登錄到系統

創建相關目錄

newuser@linux:>mkdir $HOME/tpcc-uva

newuser@linux:>mkdir $HOME/tpcc-uva/pgsql

newuser@linux:>mkdir $HOME/tpcc-uva/bin

2.   安裝PostgreSQL

1)         執行下列命令安裝PostgreSQL數據庫

newuser@linux:> ./configure --prefix=$HOME/tpcc-uva/pgsql

newuser@linux:>gmake

newuser@linux:>gmake install

2)         修改PATHLD_LIBRARY_PATH環境變量。

3)         編輯~/.bash_profile文件,添加以下內容

PATH=/usr/local/pgsql/bin:$PATH

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib

export PATH LD_LIBRARY_PATH

 

4)         執行下面的命令,使修改的環境變量生效。

newuser@linux :> source ~/.bash_profile

5)         輸入以下命令,檢驗環境變量的修改是否生效

newuser@linux:> which initdb

如果修改正確,則會輸出以下信息

$HOME/tpcc-uva/bin/initdb

 

6)         啓動PostgreSQL

newuser@linux:>initdb -D $HOME/tpcc-uva/pgsql/data

newuser@linux:> postmaster -D $HOME/tpcc-uva/pgsql/data >log.out 2>log.err&

每次重啓系統後都要執行上面的命令來啓動PostgreSQL

7)         修改PostgreSQL的參數,修改$HOME/tpcc-uva/pgsql/data/postgresql.conf

#checkpoint_segments = 3 # in logfile segments (16MB each), min 1

替換爲

checkpoint_segments = 10 # in logfile segments (16MB each), min 1

 

#checkpoint_timeout = 300 # in seconds, range 30-3600

替換爲

checkpoint_timeout = 3600 # in seconds, range 30-3600

 

8)         強制PostgreSQL重新讀取配置文件

newuser@linux:>killall -HUP postmaster

 

3.   安裝gnuplot

解壓gnuplot後,進入gnuplot的源代碼的目錄,執行下列命令安裝

newuser@linux:> ./configure --prefix=$HOME/tpcc-uva/bin --without-x

newuser@linux:> make

newuser@linux:> make install

 

4.   安裝tpcc-uva.

tpcc-uva的安裝包放在$HOME/tpcc-uva目錄下

解壓,進入解壓後的目錄,執行下列命令安裝

newuser@linux:> make

newuser@linux:> make install

 

三、    使用tpcc-uva測試

執行$HOME/tpcc-uva/bin/bench命令,開始執行tpcc-uva測試工具。測試工具啓動後最多會出現8個選項讓用戶選擇。

1.   選項1Create a New Test Database(創建新的測試數據庫)

這個選項允許用戶創建一個新的數據庫供tpcc-uva測試用,新創建的數據庫惠子tpc-uva測試的工程中根據需要來填充。如果這個選項沒有出現,說明數據庫已經被創建了,新數據庫被放在$HOME/tpcc-uva/pgsql/data目錄下。

 

選了這個選項後,程序會問數據庫需要包含幾個數據倉庫。數據倉庫的數目在1~100之間。數據倉庫越多,測試壓力越大。

注意:數據倉庫的個數太多可能會造成測試失效。對於pc來說數據倉庫的個數一般是1,處理能力強的機器數目可以相應增加。每個數據倉庫佔用137M的空間。

2.   選項2 Restore Existing Database (恢復存在的數據庫)

這個選項撤銷在測試過程中測試軟件對數據庫的修改,只有創建數據庫之後這個選項纔會出現。

如果使用恢復的數據庫做測試,測試的結果可能會比用新創建的數據庫做測試的結果差。另一方面恢復一個數據庫的時間會比創建一個新數據庫的時間少很多。一般推薦使用恢復的數據庫做初步的測試

 

3.   選項3Run The Test(開始測試)

這個選項開始性能測試。只有當有數據庫被創建或者被恢復時這個選項纔會出現。

程序會詢問用戶用於測試的參數。這些參數包括:

Number of warehouses (數據倉庫的個數):這個數字應該少於或等於存在數據庫中的數據倉庫的個數。

Number of terminals per warehouse (每個數據倉庫的終端數):TPC-C官方規範規定這個數字應該是10,如果用於初級測試我們推薦這個數字應該小於10

Ramp-up period(啓動時間):終端進程會在啓動時間內開啓。這段時間過後性能會趨於穩定,這是再開始測試會比較準確。典型的啓動時間應該設置爲20分鐘。

Measurement period (測試時間):這段時間測試工具測量系統的性能。TPC-C規定這個週期應該持續2小時~8小時。

所有的參數設置正確後,程序會提醒用戶測試過程中是否要執行清理。清理可以減少數據庫產生的殘留信息,殘留信息過多會影響測試的性能。對於8個小時的測試,最好每60分鐘執行一次清理,清理的次數要小於6次。

4.   選項4Check Database Consistency(檢查數據庫一致性)

在經過確認之後,測試要在檢查完數據庫的一致性後開始。如果對某個表的檢查失敗,程序會要求用戶確認後繼續處理。雖然出錯後仍然可以繼續處理,但是仍然強力要求在出錯時恢復或重構數據庫。

 

5.   選項5Delete Database(刪除數據庫)

刪除存在的數據庫

6.   選項6Perform Data Analysis(執行數據分析)

這個選項讓程序分析測試的結果數據。所有的信息包括檢查點文件和清理的信息都在屏幕上顯示。在屏幕上顯示的信息還有用於生成性能分析圖形的文件都會在當前路徑下保存。在顯示完後在屏幕上打印一條信息來通知用戶測試是否通過了。

7.   選項7 Check Database State(檢查數據庫狀態)

這個選項檢查數據庫的行數,並把得到的信息告訴用戶。這個信息用來指導數據庫是否在前一次測試中被使用過了。如果被使用過了,用戶可以選擇刪除這個數據庫並建立一個新數據庫,或者恢復這個數據庫並繼續使用它。

 

8.   選項8 Quit(退出)

這個選項退出測試程序。創建的數據庫會保留下次使用。

 

四、查看測試結果

1.         保存結果

測試完成進入主菜單後,輸入選項6可以查看測試結果。測試結果在屏幕上輸出完畢後測試程序會提示是否需要保存結果,輸入文件名後結果會保存到文件中(如gresult)。

greult中保存了測試的大體情況,對每種事務類型分別記錄統計信息。在gresult文件中可以看到類似”NEW-ORDER TRANSACTIONS:”的標題,這就是對每種事物類型進行總結的開始。

2.         使用gnuplot畫圖

使用gnuplot畫圖需要先有一個畫圖腳本,tpcc-uva準備了一些腳本模板存在tpcc-uva源代碼中的scripts目錄下。腳本名561562563564的含義是tpcc官方說明的第5.6.1節,5.6.2561畫的是響應時間的圖,562畫的是響應時間與吞吐率對比的圖,563畫的是思考時間(think time)的圖,564畫的是吞吐率的圖。

使用561.gnp時,要把這個腳本拷貝到保存tpcc結果的目錄下,然後用gresult中統計響應時間的90th的值乘以4得到的記過替換561.gnp中的<4x90thPERCENTILE>

Gnuplot生成的圖片是以.eps結尾的,可以用photoshop打開.

 

五、測試需要的一些知識

linux修改用戶主目錄方法:

第一:修改/etc/passwd文件

這個找到要修改的用戶那幾行,修改掉就可以了。

第二:usermod命令

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章