|
網(wǎng)站的性能測試指標(biāo)包括了Web應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器及系統(tǒng)服務(wù)器等各種性能測試。每一項(xiàng)測試中都需要根據(jù)項(xiàng)目要求完成測試,本文重點(diǎn)講述了網(wǎng)站性能測試指標(biāo),并加以案例分析。
通用指標(biāo)(指Web應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器必需測試項(xiàng))
![]() Web服務(wù)器指標(biāo)
![]() 數(shù)據(jù)庫服務(wù)器性能指標(biāo)
![]() 系統(tǒng)的瓶頸定義
![]() 穩(wěn)定系統(tǒng)的資源狀態(tài)
![]() 通俗理解:
·日訪問量 ·常用頁面最大并發(fā)數(shù) ·同時(shí)在線人數(shù) ·訪問相應(yīng)時(shí)間 案例: 最近公司一個(gè)項(xiàng)目,是個(gè)門戶網(wǎng)站,需要做性能測試,根據(jù)項(xiàng)目特點(diǎn)定出了主要測試項(xiàng)和測試方案: 一種是測試幾個(gè)常用頁面能接受的最大并發(fā)數(shù)(用戶名參數(shù)化,設(shè)置集合點(diǎn)策略) 一種是測試服務(wù)器長時(shí)間壓力下,用戶能否正常操作(用戶名參數(shù)化,迭代運(yùn)行腳本) 一種則需要測試服務(wù)器能否接受10萬用戶同時(shí)在線操作,如果是用IIS做應(yīng)用服務(wù)器的話,單臺(tái)可承受的最大并發(fā)數(shù)不可能達(dá)到10萬級(jí),那就必須要使用集群,通過多臺(tái)機(jī)器做負(fù)載均衡來實(shí)現(xiàn);如果是用websphere之類的應(yīng)用服務(wù)器的話,單臺(tái)可承受的最大并發(fā)數(shù)可以達(dá)到10萬級(jí),但為性能考慮還是必須要使用集群,通過多臺(tái)機(jī)器做負(fù)載均衡來實(shí)現(xiàn);通常有1個(gè)簡單的計(jì)算方式,1個(gè)連接產(chǎn)生1個(gè)session,每個(gè)session在服務(wù)器上有個(gè)內(nèi)存空間大小的設(shè)置,在NT上是3M,那么10萬并發(fā)就需要300G內(nèi)存,當(dāng)然實(shí)際使用中考慮其他程序也占用內(nèi)存,所以準(zhǔn)備的內(nèi)存數(shù)量要求比這個(gè)還要多一些。還有10萬個(gè)用戶同時(shí)在線,跟10萬個(gè)并發(fā)數(shù)是完全不同的2個(gè)概念。這個(gè)樓上已經(jīng)說了。但如何做這個(gè)轉(zhuǎn)換將10萬個(gè)同時(shí)在線用戶轉(zhuǎn)換成多少個(gè)并發(fā)數(shù)呢?這就必須要有大量的歷史日志信息來支撐了。系統(tǒng)日志需要有同時(shí)在線用戶數(shù)量的日志信息,還需要有用戶操作次數(shù)的日志信息,這2個(gè)數(shù)據(jù)的比例就是你同時(shí)在線用戶轉(zhuǎn)換到并發(fā)數(shù)的比例。另外根據(jù)經(jīng)驗(yàn)統(tǒng)計(jì),對于1個(gè)JAVA開發(fā)的WEB系統(tǒng)(別的我沒統(tǒng)計(jì)過,給不出數(shù)據(jù)),一般1臺(tái)雙CPU、2G內(nèi)存的服務(wù)器上可支持的最大并發(fā)數(shù)不超過500個(gè)(這個(gè)狀態(tài)下大部分操作都是超時(shí)報(bào)錯(cuò)而且服務(wù)器很容易宕機(jī),其實(shí)沒什么實(shí)際意義),可正常使用(單步非大數(shù)據(jù)量操作等待時(shí)間不超過20秒)的最大并發(fā)數(shù)不超過300個(gè)。假設(shè)你的10萬同時(shí)在線用戶轉(zhuǎn)換的并發(fā)數(shù)是9000個(gè),那么你最少需要這樣的機(jī)器18臺(tái),建議不少于30臺(tái)。當(dāng)然,你要是買個(gè)大型服務(wù)器,里面裝有200個(gè)CPU、256G的內(nèi)存,千兆光纖帶寬,就算是10萬個(gè)并發(fā)用戶,那速度,也絕對是嗖嗖的。 另外暴寒1下,光設(shè)置全部進(jìn)入運(yùn)行狀態(tài)就需要接近6個(gè)小時(shí)。具體的可以拿1個(gè)系統(tǒng)來壓一下看看,可能會(huì)出現(xiàn)以下情況: 1、服務(wù)器宕機(jī); 2、客戶端宕機(jī); 3、從某個(gè)時(shí)間開始服務(wù)器拒絕請求,客戶端上顯示的全是錯(cuò)誤; 4、勉強(qiáng)測試完成,但網(wǎng)絡(luò)堵塞或測試結(jié)果顯示時(shí)間非常長。假設(shè)客戶端和服務(wù)器之間百兆帶寬,百兆/10000=10K,那每個(gè)用戶只能得到10K,這個(gè)速度接近1個(gè)64K的MODEM上網(wǎng)的速度;另外以上分析全都沒考慮系統(tǒng)的后臺(tái),比如數(shù)據(jù)庫、中間件等。 1、服務(wù)器方面:上面說的那樣的PC SERVER需要50臺(tái); 2、網(wǎng)絡(luò)方面:按每個(gè)用戶50K,那至少5根百兆帶寬獨(dú)享,估計(jì)僅僅網(wǎng)絡(luò)延遲就大概是秒一級(jí)的; 3、如果有數(shù)據(jù)庫,至少是ORACLE,最好是SYSBASE,SQL SERVER是肯定頂不住的。數(shù)據(jù)庫服務(wù)器至少需要10臺(tái)4CPU、16G內(nèi)存的機(jī)器; 4、如果有CORBA,那至少再準(zhǔn)備10臺(tái)4CPU、16G內(nèi)存的機(jī)器;再加上負(fù)載均衡、防火墻、路由器和各種軟件等,總之沒個(gè)1000萬的資金投入,肯定搞不定。 這樣的門戶系統(tǒng),由于有用戶權(quán)限,所以并不象jackie所說大多是靜態(tài)頁面。但只要是多服務(wù)器的集群,那么我們就可以通過1臺(tái)機(jī)器的測試結(jié)果來計(jì)算多臺(tái)機(jī)器集群后的負(fù)載能力的,最多額外考慮一下負(fù)載均衡和路由上的壓力,比如帶寬、速度、延遲等。但如果都是在1臺(tái)機(jī)器上變化,那我們只能做一些指標(biāo)上的計(jì)算,可以從這些指標(biāo)上簡單判斷一下是否不可行,比如10萬并發(fā)用戶卻只有1根百兆帶寬,那我們可以計(jì)算出每個(gè)用戶只有1K帶寬,這顯然是不可行的。但實(shí)際的結(jié)果還是需要測試了才知道,畢竟系統(tǒng)壓力和用戶數(shù)量不是線性變化的。 這一類系統(tǒng)的普遍的成熟的使用,以及很多軟件在方案設(shè)計(jì)后就能夠大致估算出系統(tǒng)的性能特點(diǎn),都導(dǎo)致了系統(tǒng)在軟件性能方面調(diào)優(yōu)的比例并不大(當(dāng)然不完全排除后期針對某些代碼和配置進(jìn)行優(yōu)化后性能的進(jìn)一步提高),更多的都是從硬件方面來考慮,比如增加內(nèi)存、硬盤做RAID、增加帶寬、甚至增加機(jī)器等。 網(wǎng)絡(luò)技術(shù)中的10M 帶寬指的是以位計(jì)算, 就是 10M bit /秒 ,而下載時(shí)的速度看到的是以字節(jié)(Byte)計(jì)算的,所以10M帶寬換算成字節(jié)理論上最快下載速度為:1.25 M Byte/秒!
【編輯推薦】 |
|
|