說明
本文介紹了性能測(cè)試中所涉及的通用內(nèi)容(針對(duì)Java知識(shí)體系)膀估,注重介紹性能測(cè)試相關(guān)概念幔亥、相關(guān)工具、所需知識(shí)點(diǎn)以及注意事項(xiàng)察纯。這里并沒有對(duì)具體的某一環(huán)節(jié)進(jìn)行詳細(xì)講解帕棉,適合想從整體上快速了解性能測(cè)試的同學(xué)閱讀针肥!
什么是性能測(cè)試
性能測(cè)試是通過自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試香伴。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試祖驱,兩者可以結(jié)合進(jìn)行。通過負(fù)載測(cè)試瞒窒,確定在各種工作負(fù)載下系統(tǒng)的性能捺僻,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況崇裁。壓力測(cè)試是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接受的性能點(diǎn)匕坯,來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。
性能測(cè)試相關(guān)概念
1.?????? 事務(wù):性能測(cè)試中的事務(wù)是指用戶在應(yīng)用系統(tǒng)中為完成某項(xiàng)業(yè)務(wù)拔稳,所做的一組請(qǐng)求的集合葛峻。一項(xiàng)業(yè)務(wù)中可以包括多個(gè)事務(wù),如 查詢巴比、保存等等都可分別定義為一個(gè)單獨(dú)的事務(wù)
2.?????? 響應(yīng)時(shí)間:應(yīng)用系統(tǒng)對(duì)客戶的某個(gè)操作正確反饋結(jié)果的時(shí)間术奖。客戶端與服務(wù)器建立連接時(shí)間+應(yīng)用處理時(shí)間+數(shù)據(jù)庫時(shí)間+傳輸時(shí)間的時(shí)間總和
3.?????? TPS:每秒事務(wù)數(shù)
4.?????? 吞吐量:吞吐量是系統(tǒng)處理并發(fā)訪問能力的綜合指標(biāo)轻绞,與響應(yīng)時(shí)間和TPS息息相關(guān)采记。LR中的吞吐量是指服務(wù)器返回給客戶端的數(shù)據(jù)字節(jié)的總和。不包括客戶端發(fā)出的請(qǐng)求字節(jié)響應(yīng)時(shí)間越小政勃,TPS越高唧龄,系統(tǒng)的吞吐量也會(huì)越大
5.?????? 點(diǎn)擊率:服務(wù)器每秒處理的請(qǐng)求數(shù)
性能測(cè)試類型
1.?????? 壓力測(cè)試:壓力測(cè)試是不斷的對(duì)系統(tǒng)施加壓力,測(cè)試系統(tǒng)在用戶不可接受或者失效時(shí)的所能承受的最大處理能力奸远。如能夠最大處理多大并發(fā)
2.?????? 極限測(cè)試:主要是檢查程序?qū)Ξ惓G闆r的抵抗能力
3.?????? 并發(fā)測(cè)試:主要指測(cè)試多個(gè)用戶同時(shí)訪問同一個(gè)應(yīng)用程序既棺、同一個(gè)模塊、或者同數(shù)據(jù)記錄時(shí)是否存在死鎖或者其他功能和性能問題
4.?????? 穩(wěn)定性測(cè)試:對(duì)系統(tǒng)持續(xù)長(zhǎng)時(shí)間加載壓力懒叛,以檢測(cè)系統(tǒng)是否穩(wěn)定的運(yùn)行丸冕。如為了模擬7*24小時(shí)業(yè)務(wù),持續(xù)測(cè)試5小時(shí)或者8小時(shí)
性能測(cè)試流程
性能測(cè)試工具的使用
Loadrunner 商用薛窥,價(jià)格昂貴
Jmeter開源免費(fèi)胖烛,應(yīng)用廣泛
性能測(cè)試監(jiān)控工具之nmon
Nmon是一款計(jì)算機(jī)性能系統(tǒng)監(jiān)控工具,開源免費(fèi)拆檬,我們可以使用它來監(jiān)控服務(wù)器中的cpu洪己,內(nèi)存,網(wǎng)絡(luò)竟贯,磁盤等指標(biāo)答捕。
1.?????? Nmon安裝:
下載 wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
解壓 tar zxvf nmon_linux_14i.tar.gz
2.?????? Nmon運(yùn)行:
chmod 777 nmon_x86_64_sles11
/usr/local/nmon/nmon_x86_64_sles11 -s3 -c3060 -f -t -m /root/nmonlog
參數(shù)解釋:
-s10 每 10 秒采集一次數(shù)據(jù)。
-c60 采集 60 次屑那,即為采集十分鐘的數(shù)據(jù)拱镐。
-f 生成的數(shù)據(jù)文件名中包含文件創(chuàng)建的時(shí)間艘款。
-m 生成的數(shù)據(jù)文件的存放目錄
3.????? Nmon解析
通過nmon analyser v34a.xls打開.nmon文件,可以看到服務(wù)器中的cpu沃琅,內(nèi)存哗咆,網(wǎng)絡(luò),磁盤等指標(biāo)益眉。
性能測(cè)試報(bào)告的編寫
核心點(diǎn)包括:
1.?????? 詳細(xì)闡述測(cè)試結(jié)果晌柬,問題分析
2.?????? 闡述項(xiàng)目背景
3.?????? 闡述測(cè)試時(shí)間,地點(diǎn)
4.?????? 闡述測(cè)試范圍
5.?????? 闡述測(cè)試工具
6.?????? 描畫環(huán)境部署架構(gòu)圖
7.?????? 描述測(cè)試環(huán)境(待測(cè)環(huán)境硬件配置郭脂,測(cè)試壓力機(jī)硬件配置年碘,核心表基礎(chǔ)數(shù)據(jù)量,數(shù)據(jù)庫和應(yīng)用服務(wù)器的參數(shù)配置)
8.?????? 測(cè)試結(jié)果詳細(xì)列舉(包含每個(gè)場(chǎng)景每個(gè)事務(wù)90%響應(yīng)時(shí)間展鸡,tps, 硬件資源利用率屿衅,JVM回收情況,TOPSQL分析莹弊,小結(jié))
調(diào)優(yōu)
關(guān)于性能測(cè)試優(yōu)化能講的內(nèi)容很多涤久,這里就不多介紹了,每一個(gè)技術(shù)點(diǎn)都涉及很深的知識(shí)面忍弛。
總的來說响迂,可以分為以下四個(gè)方面:
Liunx調(diào)優(yōu)
中間件調(diào)優(yōu)
JVM調(diào)優(yōu)
數(shù)據(jù)庫調(diào)優(yōu)
總結(jié)
1.性能測(cè)試的核心,不是會(huì)使用lr或者jmeter等壓測(cè)工具剧罩,會(huì)用工具只能說明你剛剛?cè)腴T栓拜。
2.性能測(cè)試的難點(diǎn)是當(dāng)發(fā)現(xiàn)性能瓶頸時(shí)座泳,能夠排查出問題惠昔,這包括了對(duì)Liunx調(diào)優(yōu)、中間件調(diào)優(yōu)挑势、
JVM調(diào)優(yōu)以及數(shù)據(jù)庫調(diào)優(yōu)镇防。
3.性能測(cè)試一定要明確測(cè)試目標(biāo),在已確認(rèn)的硬件配置潮饱、數(shù)據(jù)量級(jí)上開展測(cè)試来氧。
4.溝通是關(guān)鍵,前期需要跟產(chǎn)品協(xié)調(diào)明確測(cè)試目標(biāo)(測(cè)試所涉及的業(yè)務(wù)范圍香拉、TPS啦扬、響應(yīng)時(shí)間),中期需要跟運(yùn)維同事協(xié)調(diào)構(gòu)建環(huán)境的相關(guān)事宜凫碌,最后發(fā)現(xiàn)問題時(shí)需要跟dba和研發(fā)同學(xué)協(xié)調(diào)解決方案扑毡。如果溝通不暢會(huì)導(dǎo)致項(xiàng)目的嚴(yán)重delay。