1、 準備linux
操做系統 :Linux, 內核版本2.6ios
須要軟件:tpccuva-1.2.3, postgresql-8.1.15, gnuplot-4.2.5。sql
tccuva是實現標準TPC-C。數據庫
Postgresql是最穩定的開源sql數據庫。bash
gunplot是一個數學軟件,能夠根據數據畫出相應的函數圖形。函數
2、 安裝工具
1. 建立用戶post
[root@RedHat /]# useradd -m tpcctest性能
[root@RedHat /]# passwd tpcctest(密碼自行建立)測試
以tpcctest身份登陸到系統
[root@RedHat /]# su tpcctest
[tpcctest@RedHat /]$
建立相關目錄
tpcctest@linux:>mkdir $HOME/tpcc-uva
tpcctest@linux:>mkdir $HOME/tpcc-uva/pgsql
tpcctest@linux:>mkdir $HOME/tpcc-uva/bin
2. 安裝PostgreSQL
1)執行下列命令安裝PostgreSQL數據庫
tpcctest@linux:> ./configure --prefix=$HOME/tpcc-uva/pgsql
tpcctest@linux:>gmake
tpcctest@linux:>gmake install
2)修改PATH和LD_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)執行下面的命令,使修改的環境變量生效。
tpcctest@linux :> source ~/.bash_profile
5)輸入如下命令,檢驗環境變量的修改是否生效
tpcctest@linux:> which initdb
若是修改正確,則會輸出如下信息
$HOME/tpcc-uva/bin/initdb
6) 啓動PostgreSQL
tpcctest@linux:>initdb -D $HOME/tpcc-uva/pgsql/data
tpcctest@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從新讀取配置文件
tpcctest@linux:>killall -HUP postmaster
3. 安裝gnuplot
解壓gnuplot後,進入gnuplot的源代碼的目錄,執行下列命令安裝
tpcctest@linux:> ./configure --prefix=$HOME/tpcc-uva/bin --without-x
tpcctest@linux:> make
tpcctest@linux:> make install
4. 安裝tpcc-uva.
將tpcc-uva的安裝包放在$HOME/tpcc-uva目錄下
解壓,進入解壓後的目錄,執行下列命令安裝
tpcctest@linux:> make
tpcctest@linux:> make install
3、 使用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. 選項4:Check Database Consistency(檢查數據庫一致性)
在通過確認以後,測試要在檢查完數據庫的一致性後開始。若是對某個表的檢查失敗,程序會要求用戶確認後繼續處理。雖然出錯後仍然能夠繼續處理,可是仍然強力要求在出錯時恢復或重構數據庫。
5. 選項5Delete Database(刪除數據庫)
刪除存在的數據庫
6. 選項6Perform Data Analysis(執行數據分析)
這個選項讓程序分析測試的結果數據。全部的信息包括檢查點文件和清理的信息都在屏幕上顯示。在屏幕上顯示的信息還有用於生成性能分析圖形的文件都會在當前路徑下保存。在顯示完後在屏幕上打印一條信息來通知用戶測試是否經過了。
7. 選項7 Check Database State(檢查數據庫狀態)
這個選項檢查數據庫的行數,並把獲得的信息告訴用戶。這個信息用來指導數據庫是否在前一次測試中被使用過了。若是被使用過了,用戶能夠選擇刪除這個數據庫並創建一個新數據庫,或者恢復這個數據庫並繼續使用它。
8. 選項8 Quit(退出)
這個選項退出測試程序。建立的數據庫會保留下次使用。
4、查看測試結果
1. 保存結果
測試完成進入主菜單後,輸入選項6能夠查看測試結果。測試結果在屏幕上輸出完畢後測試程序會提示是否須要保存結果,輸入文件名後結果會保存到文件中(如gresult)。
greult中保存了測試的大致狀況,對每種事務類型分別記錄統計信息。在gresult文件中能夠看到相似」NEW-ORDER TRANSACTIONS:」的標題,這就是對每種事物類型進行總結的開始。
在測試過程注意使用抓取系統信息:
iostat –xkd 1 20(表示1秒抓取一次,連續20次)
vmstat 1 20 (表示1秒抓取一次,連續20次)
測試結果若是是failed,具備參考意義;
注意:在當前目錄下回生成不少文件,其數據具備參考意義,好比g4.dat文件能夠用來畫圖,能夠觀察到數據的波動與走向。
2. 使用gnuplot畫圖
使用gnuplot畫圖須要先有一個畫圖腳本,tpcc-uva準備了一些腳本模板存在tpcc-uva源代碼中的scripts目錄下。腳本名561,562,563,564的含義是tpcc官方說明的第5.6.1節,5.6.2節…561畫的是響應時間的圖,562畫的是響應時間與吞吐率對比的圖,563畫的是思考時間(think time)的圖,564畫的是吞吐率的圖。
使用561.gnp時,要把這個腳本拷貝到保存tpcc結果的目錄下,而後用gresult中統計響應時間的90th的值乘以4獲得的記過替換561.gnp中的<4x90thPERCENTILE>。
Gnuplot生成的圖片是以.eps結尾的,能夠用photoshop打開.
5、附錄
linux修改用戶主目錄方法:
第一:修改/etc/passwd文件
第二:usermod命令