页面缓存测试
以前做的一個(gè)有關(guān)Page Cache方面的測(cè)試,今天提出來說說我的測(cè)試方法,希望對(duì)讀者有所幫助。
問題回顧
由于網(wǎng)站被頻繁請(qǐng)求的頁面為動(dòng)態(tài)生成WEB頁,導(dǎo)致消耗大量系統(tǒng)資源,為了提高用戶對(duì)此類網(wǎng)頁訪問的響應(yīng)時(shí)間,采用對(duì)其該部分頁面使用Cache技術(shù)。
對(duì)于這種類型的測(cè)試其實(shí)很簡(jiǎn)單,只要求測(cè)試人員做到以下兩點(diǎn)就完全可以應(yīng)付:
1、對(duì)Cache在業(yè)務(wù)中的實(shí)現(xiàn)規(guī)則有充分了解(具體說來就是,有哪些頁面使用了Cache,Cache的有效時(shí)間長度為多少,被測(cè)服務(wù)器端物理內(nèi)存為多少,分配了多少空間給了Cache)。
2、理解在測(cè)試過程中需要重點(diǎn)關(guān)注的相關(guān)性能計(jì)數(shù)器(例如內(nèi)存)。
測(cè)試第一步,驗(yàn)證
驗(yàn)證Cache是否存在,是否滿足實(shí)現(xiàn)規(guī)則。例如訪問一個(gè)已經(jīng)加有Cache的動(dòng)態(tài)頁面,第一次請(qǐng)求的頁面響應(yīng)時(shí)間為10秒,第二次為3秒,90 Percent 的響應(yīng)時(shí)間不大于4秒,那么我們暫時(shí)可以認(rèn)為Cache生效。在隨后的測(cè)試過程中,使用ramp -up 方法對(duì)Cache進(jìn)行測(cè)試,看到response time結(jié)果大致為,當(dāng)?shù)谝粋€(gè)線程訪問該頁面時(shí),RPT在一個(gè)很高的起點(diǎn)上,因?yàn)檫@時(shí)Web 服務(wù)器必須訪問數(shù)據(jù)庫,并生成頁面,再將其存儲(chǔ)在緩存中,這個(gè)過程消耗了大部分RPT,運(yùn)行到第二線程時(shí)RPT成曲線下降到一個(gè)很低的點(diǎn)上,這是因?yàn)榈诙€程直接從內(nèi)存中的Cache里讀到了所需的頁,這個(gè)點(diǎn)和隨后增加的線程幾乎在同一水平線上,平穩(wěn)延續(xù),當(dāng)場(chǎng)景運(yùn)行到20分鐘左右,正好是到了Cache生命周期結(jié)束的時(shí)間點(diǎn)上,重復(fù)以上描述RPT曲線軌跡。在這里RPT不是隨著用戶的上升而上升,給人的感覺象是使用了COOKIE。
測(cè)試第二步,并發(fā)
通過設(shè)置并發(fā)點(diǎn)對(duì)同一動(dòng)態(tài)頁面的訪問,測(cè)試Cache是否有等待時(shí)間過長的現(xiàn)象。因?yàn)榈谝坏竭_(dá)目的地的線程會(huì)先到內(nèi)存中存儲(chǔ)它訪問完數(shù)據(jù)庫并生成完頁面的緩存,這個(gè)時(shí)候其他線程只有乖乖等待第一線程做完寫操作后方可進(jìn)行讀操作,大家知道一個(gè)線程在一次操作過程中只允許有寫或者是讀的權(quán)限,兩種權(quán)限不允許在一個(gè)線程內(nèi)同時(shí)進(jìn)行,如果程序中的線程同步鎖處理的不夠好,那么可能會(huì)導(dǎo)致意外情況發(fā)生。例如在多用戶同時(shí)訪問該頁面時(shí),可能會(huì)出現(xiàn)所有線程請(qǐng)求失敗,遇到這種情況,測(cè)試人員可以先多嘗試用串行或者不加并發(fā)點(diǎn)進(jìn)行測(cè)試并得出結(jié)論。根據(jù)經(jīng)驗(yàn)遇到這種問題大多數(shù)為線程同步機(jī)制出現(xiàn)問題所導(dǎo)致。在測(cè)試過程中要更多關(guān)注WEB SERVER 的內(nèi)存計(jì)數(shù)器其中包括(頁交換比率\ pages reads\ private byte\ working set )如果緩存命中率底,那么內(nèi)存頁交換和pages reads會(huì)很高,如果大用戶量訪問,內(nèi)存不能及時(shí)釋放空間,則 working set和private byte會(huì)很高,如果懷疑有memory leak現(xiàn)象,可以把其他相關(guān)業(yè)務(wù)同時(shí)加上,把執(zhí)行場(chǎng)景的時(shí)間拉長一些,看對(duì)其他業(yè)務(wù)的影響程度。在這里Cache的命中率是Cache的關(guān)鍵問題,如對(duì)以上計(jì)數(shù)器不是很理解還請(qǐng)查一下相關(guān)幫助文件,在這里就不做過多解釋了。
使用Cache的優(yōu)點(diǎn)
節(jié)省生成頁面時(shí)所消耗的CPU和內(nèi)存資源。對(duì)于大用戶量的訪問使RPT一樣變的很短。
對(duì)數(shù)據(jù)庫的壓力減少是顯而易見.我個(gè)人覺得這個(gè)是最重要優(yōu)勢(shì)。
對(duì)于最終用戶和服務(wù)器之間,用戶的請(qǐng)求時(shí)間變短了,那么就縮小了服務(wù)器的資源浪費(fèi)。?
總結(jié)
- 上一篇: 用Itext把数据导出到Pdf文档
- 下一篇: 音频编码标准发展现状