tpcc-uva測試環境搭建與結果分析
一、 準備
作業系統 :linux, 核心版本2.6
需要軟體:tpccuva-1.2.3, postgresql-8.1.15, gnuplot-4.2.5。
tccuva是實現標準tpc-c。
postgresql是最穩定的開源sql資料庫。
gunplot是乙個數學軟體,可以根據資料畫出相應的函式圖形。
二、 安裝
1. 建立使用者
[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
三、 使用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(退出)
這個選項退出測試程式。建立的資料庫會保留下次使用。
四、檢視測試結果
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開啟.
五、附錄
linux修改使用者主目錄方法:
第一:修改/etc/passwd檔案
這個找到要修改的使用者那幾行,修改掉就可以了。
第二:usermod命令
搭建測試環境
測試進行軟體測試的之前,需要搭建好測試環境。那什麼是測試環境呢?簡單的說就是軟體執行的平台,即軟體 硬體和網路三種環境的合集,也就是說 測試環境 軟體 硬體 網路 硬體 包括pc機 筆記本 伺服器 各種終端等。例如要測試photoshop軟體,是要在pc機上測,還是筆記本上測?是在cpu為酷睿的計算...
CSP測試環境搭建
因為csp需要微軟簽名後才可以測試,並且每改動一點都要重新簽名,給csp的除錯帶來諸多不變,於是按照cspdk中的說明在98,2k作業系統下通過替換advapi32.dll不用簽名,就按照說明 從網上下來win2k作業系統進行安裝,替代等操作,結果都是失敗,第乙個現象,我用cspdk目錄下 的adv...
測試環境搭建心得
大四即將結束,大學的最後乙個假期,找到乙份實習工作,擔任測試工程師。在過年前的最後一周入職,幹了一周的活兒。主要工作就是搭建測試環境。vmware 主要熟悉vmware軟體,裝系統基本都沒什麼問題。先是裝上純淨的系統,然後將虛擬機器所在的資料夾複製乙份,再在這個虛擬機器上裝一些需要的軟體。vmwar...