如何對 Oracle 做壓力測試?
點擊藍(lán)色“有關(guān)SQL”關(guān)注我喲
加個“星標(biāo)”,天天與10000人一起快樂成長

原作者:孫杰
原文地址:
http://xjsunjie.blog.51cto.com/999372/1560779
小編有話說:
最近一直在找數(shù)據(jù)庫測試方案。找了很多論文來看,同時也看一些博客。讀過幾篇文章,越發(fā)感覺數(shù)據(jù)庫測試對于大部分的團(tuán)隊來講,都是黑盒,極易被輕視。
有些團(tuán)隊不知道測試的標(biāo)準(zhǔn)做法,連測試指標(biāo)體系都不會系統(tǒng)化創(chuàng)建,靠著隨意拉來的幾個開發(fā)或毫無經(jīng)驗的QA,怎么能保證軟件質(zhì)量呢。
而這些人實在也不該給軟件質(zhì)量背鍋。因為他們本身就只能打外圍,測業(yè)務(wù)功能嘛,對壓力,性能,可用性一點概念都沒有。就好比,讓BI團(tuán)隊來負(fù)責(zé)互聯(lián)網(wǎng)公司的營運一樣,看似數(shù)據(jù)都是BI出的,業(yè)務(wù)都在代碼里,那為什么BI團(tuán)隊做不好運營呢。強丟的KPI,誰能背得動?
所以我認(rèn)為,數(shù)據(jù)庫測試對于數(shù)據(jù)庫開發(fā)團(tuán)隊來說,是門必修課。
兜兜轉(zhuǎn)轉(zhuǎn),找到了孫杰老師的這篇文章,本文從實戰(zhàn)的角度為我們演示了數(shù)據(jù)庫壓力測試該怎么做,以便我們上線數(shù)據(jù)庫后,能夠胸有成竹對老板說,“我們單機能支撐每分鐘5000事務(wù)”。
以下是孫老師的原文:
swingbench是一款網(wǎng)絡(luò)上開源的oracle壓力測試工具,支持oracle 11g版本,還能對rac進(jìn)行測試。從官方頁面http://dominicgiles.com/downloads.html上可以下載最新的軟件版本。

? ?swingbench可以運行在windows和linux平臺,本次測試采用linux平臺,具體測試過程如下:
? 1、首先使用VMVARE10搭建一個redhat6.5的虛擬機。
? 2、在虛擬redhat6.5上安裝ORACLE11G的數(shù)據(jù)庫。
? 3、使用oewizard導(dǎo)入測試數(shù)據(jù),可以根據(jù)向?qū)崾具M(jìn)行數(shù)據(jù)導(dǎo)入。
? ? ? ? yum install -y java ?
? 4、使用swingbench進(jìn)行壓力測試。
測試步驟:
1、導(dǎo)數(shù)據(jù)之前需要修改temp表空間大小,使其能夠容納下相應(yīng)的導(dǎo)入數(shù)據(jù)
mkdir -p /home/oracle/oradata/orcl
create temporary tablespace temp1 tempfile '/home/oracle/oradata/orcl/temp1.dbf' size 100m;?
alter database default temporary tablespace temp1;?
drop tablespace TEMP;?
create temporary tablespace temp tempfile '/home/oracle/oradata/orcl/temp.dbf' size 1g;
alter database default temporary tablespace temp;
drop tablespace temp1;
(也可用rm刪除temp1.dbf)
上述操作也可通過EM管理界面直接將TEMP表空間擴到1G.
2、安裝swingbench測試軟件,直接解壓縮即可運行。
unzip -x?swingbench25919.zip
注意要按照java8
?yum -y install java-1.8.0-openjdk*
3、進(jìn)入swingbench/bin目錄執(zhí)行oewizard導(dǎo)入1G測試數(shù)據(jù),并修改數(shù)據(jù)庫連接名和DBA密碼

輸入導(dǎo)入數(shù)據(jù)文件存放位置:

選擇導(dǎo)入1G數(shù)據(jù):

數(shù)據(jù)導(dǎo)完之后在該目錄下運行swingbench執(zhí)行測試,修改數(shù)據(jù)庫連接名,用戶連接數(shù)設(shè)置為300,測試時間設(shè)置為10分鐘

修改Distributed Controls用于測試過程中搜集測試監(jiān)控信息,修改完之后測試連接是否正常,并可以統(tǒng)計主機的cpu? disk IO 信息

還可以拉出AWR報表

設(shè)置 insert,update ,select的比例

設(shè)置完成之后,點擊左上角綠色按鈕執(zhí)行測試

測試過程截圖

測試結(jié)果可保持為XML文檔,最后查看顯示如下

------------
我們可以使用swingbench這個工具對數(shù)據(jù)庫性能進(jìn)行壓力測試,得到一些性能指標(biāo)作為參考。
SwingBench下載:
http://www.dominicgiles.com/downloads.html
參考相關(guān)文章:
http://www.linuxidc.com/Linux/2016-04/130297.htm
http://blog.csdn.net/xiaofan23z/article/details/7978998
實驗環(huán)境:
RHEL 6.5 + Oracle 11.2.0.4 RAC + SwingBench 2.5.0.971
1. 生成swingbench配置文件
swingbench解壓即可使用,第一次需要配置,本次只是簡單熟悉swingbench的使用,配置基本按照默認(rèn)。
[oracle@jyrac1 bin]$ pwd
/home/oracle/swingbench/bin
[oracle@jyrac1 bin]$ ./oewizard
注意,上面的connect string,根據(jù)需求填寫,比如:
--如果壓測只連接實例1
jyrac1:1521:jyzhao1
--如果壓測只連接實例2
jyrac2:1521:jyzhao2
--如果壓測連接RAC集群,LB到各個實例
//jyrac1/jyzhao


2. 運行swingbench壓力測試

可以大致看到壓力測試中,數(shù)據(jù)庫可以達(dá)到的TPM,TPS等性能指標(biāo),作為今后系統(tǒng)正式上線后的一個參考依據(jù)
往期精彩:
