目錄
目錄X
動(dòng)易SiteFactory2.0負(fù)載能力深度測(cè)評(píng)報(bào)告(1)
[NextPage前言] 一、前言部分
2008年12月03日,我們對(duì)外發(fā)布了基于微軟.net平臺(tái)的企業(yè)級(jí)內(nèi)容管理系統(tǒng)——?jiǎng)右?SiteFactory? 2.0 正式版。此次發(fā)布的 SiteFactory? 2.0 版本不僅在系統(tǒng)架構(gòu)方面進(jìn)行了最大程度的改進(jìn),而且對(duì)查詢語(yǔ)句、索引、應(yīng)用程序調(diào)用及數(shù)據(jù)庫(kù)性能等方面進(jìn)行了仔細(xì)且嚴(yán)格的優(yōu)化!特別是內(nèi)置于Xpower模板解析引擎中的標(biāo)簽庫(kù)全部重新書寫及優(yōu)化,重新按照模板設(shè)計(jì)思路的進(jìn)行目錄歸類,精簡(jiǎn)標(biāo)簽數(shù)量到200多個(gè)等一系列優(yōu)化和改進(jìn)之后,無(wú)論是易用性還是執(zhí)行效率上都遠(yuǎn)遠(yuǎn)超越了歷屆版本。
距離 SiteFactory? 面市已經(jīng)過去數(shù)月,雖每一次版本的更新都伴隨著負(fù)載和性能的一次提升,但具體提升多少并沒有多少人知道。如今,在新版本架構(gòu)和執(zhí)行性能趨于穩(wěn)定后,我們特別組織動(dòng)易測(cè)試部對(duì)SiteFactory? 2.0 的數(shù)據(jù)負(fù)載能力進(jìn)行一次全方位的深度評(píng)測(cè)。希望通過具有說(shuō)服力的“實(shí)際評(píng)測(cè)數(shù)據(jù)”,為大家展示SiteFactory? 2.0 真正的負(fù)載實(shí)力。
《用數(shù)據(jù)說(shuō)話!動(dòng)易SiteFactory2.0負(fù)載能力深度測(cè)評(píng)報(bào)告》將被分成數(shù)個(gè)篇章以評(píng)測(cè)系列的方式進(jìn)行介紹,整個(gè)評(píng)測(cè)過程采用透明、公開的方式供大家監(jiān)督!如果有誰(shuí)對(duì)測(cè)評(píng)過程和測(cè)評(píng)結(jié)果有疑問,可以自行參照我們的測(cè)試過程搭建類似的測(cè)試環(huán)境自己測(cè)試和對(duì)比測(cè)試結(jié)果。
下面我們就開始第一部分的評(píng)測(cè):
1、服務(wù)器環(huán)境:
為了測(cè)試普通環(huán)境下SiteFactory的負(fù)載能力,特使用普通臺(tái)式機(jī)作為服務(wù)器來(lái)測(cè)試SiteFactory的運(yùn)行情況。
服務(wù)器配置如下:
服務(wù)器配置
2、客戶端環(huán)境:
為避免某一臺(tái)客戶端電腦配置太慢會(huì)引起誤差,采用3臺(tái)不同的電腦上來(lái)測(cè)試。三臺(tái)電腦的配置分別為:
3、其他環(huán)境:
為避免因特網(wǎng)網(wǎng)速會(huì)引起的誤差,采用局域網(wǎng)訪問方式。
為了與真實(shí)應(yīng)用的效果,不是采用程序直接錄入100萬(wàn)條最簡(jiǎn)單的數(shù)據(jù),而是通過用戶提供的實(shí)際網(wǎng)站數(shù)據(jù),準(zhǔn)備了10萬(wàn)數(shù)據(jù)量和100萬(wàn)數(shù)據(jù)量的數(shù)據(jù)庫(kù)來(lái)進(jìn)行測(cè)試。
下圖是顯示有10萬(wàn)/100萬(wàn)篇文章,全是常規(guī)文章,而不是統(tǒng)一添加的相同數(shù)據(jù)。
[NextPage評(píng)測(cè)工具]
三、評(píng)測(cè)工具
1、載入時(shí)間測(cè)試工具(webwait,網(wǎng)址: )
WebWait是一個(gè)提供測(cè)量網(wǎng)站載入速度的網(wǎng)站。它可以計(jì)算網(wǎng)站從讀取到完成需要多少時(shí)間,包括所有圖象、stylesheets和JavaScript。
WebWait目前支持FireFox、Opera和IE三種瀏覽器,你可以設(shè)置載入頁(yè)面的次數(shù)和每次的時(shí)間間隔,默認(rèn)5次之后計(jì)算出平均值就為結(jié)果了。
2、測(cè)試用瀏覽器
微軟IE7 瀏覽器
[NextPage后臺(tái)管理頁(yè)面的性能測(cè)試(一)]
四、評(píng)測(cè)步驟
1、后臺(tái)管理頁(yè)面的性能測(cè)試
使用WebWait來(lái)測(cè)試網(wǎng)頁(yè)載入時(shí)間,從點(diǎn)下鏈接開始,到頁(yè)面打開計(jì)時(shí)。每臺(tái)電腦上點(diǎn)擊6次,只取后5次時(shí)間的平均值。(說(shuō)明:因?yàn)锳SP.NET的“第一次訪問頁(yè)面會(huì)進(jìn)行編譯等操作而導(dǎo)致會(huì)比較慢,后面訪問才會(huì)非常快”的特性,所以測(cè)試結(jié)果不取第一次打開頁(yè)面時(shí)間。)
1)全部?jī)?nèi)容打開時(shí)間:
10萬(wàn)篇文章時(shí)后臺(tái)管理“全部?jī)?nèi)容”打開時(shí)間
100萬(wàn)篇文章時(shí)后臺(tái)管理“全部?jī)?nèi)容”打開時(shí)間
[NextPage后臺(tái)管理頁(yè)面的性能測(cè)試(二)]
2)待審核內(nèi)容打開時(shí)間
10萬(wàn)篇文章時(shí)待審核內(nèi)容打開時(shí)間
100萬(wàn)篇文章時(shí)待審核內(nèi)容打開時(shí)間
[NextPage后臺(tái)管理頁(yè)面的性能測(cè)試(三)]
3)已審核內(nèi)容打開時(shí)間
10萬(wàn)篇文章時(shí)已審核內(nèi)容打開時(shí)間
100萬(wàn)篇文章時(shí)已審核內(nèi)容打開時(shí)間
小結(jié):動(dòng)易SiteFactory的后臺(tái)管理可以輕松承載100萬(wàn)的數(shù)據(jù),并且和10萬(wàn)數(shù)據(jù)時(shí)相比,沒有任何性能上的衰減。無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),后臺(tái)管理的幾個(gè)主要頁(yè)面的打開時(shí)間都在0.2秒以內(nèi),可以說(shuō)是“閃電”來(lái)形容,絕對(duì)是“飛快”的級(jí)別。
[NextPage生成HTML頁(yè)面速度測(cè)試(一)]
2、生成HTML頁(yè)面速度測(cè)試
1)內(nèi)容頁(yè)模板最簡(jiǎn)化,只保留顯示文章的標(biāo)題、作者、更新時(shí)間、內(nèi)容等,不要任何其他不相關(guān)的標(biāo)簽,如相關(guān)文章、推薦文章、熱門文章等,生成1萬(wàn)篇文章計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
為了不讓ASP.NET的特性影響生成速度,先小量生成10篇文章,不計(jì)時(shí),然后開始生成1萬(wàn)篇文章并計(jì)時(shí)。
2)使用一個(gè)官方默認(rèn)提供的模板(除了含有文章的標(biāo)題、作者、更新時(shí)間、內(nèi)容等,還有相關(guān)文章、推薦文章、熱門文章等標(biāo)簽),生成1萬(wàn)篇文章計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
最后的運(yùn)行時(shí)間見下圖:
小結(jié):動(dòng)易SiteFactory2.0的內(nèi)容頁(yè)的生成速度可以說(shuō)用“飛快”來(lái)形容,無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),無(wú)論是簡(jiǎn)單模板還是復(fù)雜模板,內(nèi)容頁(yè)的HTML生成速度都達(dá)到了每秒可以生成6-10篇。從數(shù)據(jù)中也可以看出來(lái),同樣的模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
[NextPage生成HTML頁(yè)面速度測(cè)試(二)]
3)將6萬(wàn)多篇文章歸屬于某欄目,然后為這個(gè)欄目制作一個(gè)最簡(jiǎn)單的欄目列表頁(yè)模板,模板中只有一個(gè)分頁(yè)列表,沒有熱門文章、推薦文章等標(biāo)簽。生成這個(gè)欄目列表頁(yè),計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
從上圖可以看出,這個(gè)欄目下共有6萬(wàn)多篇文章,每頁(yè)20篇文章,共要生成3000多頁(yè)。
為了不讓ASP.NET的特性影響生成速度,先生成某個(gè)只有10篇文章的欄目列表,再生成此欄目的列表并計(jì)時(shí)。
4)為上述欄目使用官方默認(rèn)的欄目列表頁(yè)模板,生成欄目列表頁(yè),計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
小結(jié):動(dòng)易SiteFactory2.0的欄目頁(yè)的生成速度可以說(shuō)用“飛快”來(lái)形容。無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),使用簡(jiǎn)單模板的情況下,生成一個(gè)含有6萬(wàn)多篇文章(每頁(yè)20篇文章,共要生成3000多個(gè)頁(yè)面)的欄目頁(yè)的生成時(shí)間都在150秒左右,約每秒種生成20頁(yè),性能上沒有太大的差異。
當(dāng)使用復(fù)雜模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)出現(xiàn)了較大的性能差異,但100萬(wàn)數(shù)據(jù)和復(fù)雜模板時(shí)仍能達(dá)到每秒鐘10個(gè)頁(yè)面左右的速度,仍可以歸于“飛快”級(jí)別。對(duì)比兩個(gè)表格的數(shù)據(jù),我們可以清楚的看到模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
[NextPage生成HTML頁(yè)面速度測(cè)試(三)]
5)為首頁(yè)節(jié)點(diǎn)制作一個(gè)簡(jiǎn)單的模板(只調(diào)用4個(gè)欄目的列表),生成首頁(yè)計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
為了不讓ASP.NET的特性影響生成速度,第一次生成首頁(yè)不計(jì)時(shí)。
6)為首頁(yè)制作一個(gè)復(fù)雜的模板(調(diào)用20個(gè)欄目的列表,還有其他各種功能),生成首頁(yè)計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
小結(jié):動(dòng)易SiteFactory2.0的首頁(yè)的生成速度可以說(shuō)用“飛快”來(lái)形容,無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),無(wú)論是簡(jiǎn)單模板還是復(fù)雜模板,首頁(yè)的HTML生成速度都在1秒左右。從數(shù)據(jù)中也可以看出來(lái),同樣的模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
[NextPage動(dòng)態(tài)頁(yè)訪問性能測(cè)試]
3、動(dòng)態(tài)頁(yè)訪問性能測(cè)試
1)讓首頁(yè)節(jié)點(diǎn)使用上述第5項(xiàng)測(cè)試中的簡(jiǎn)單模板,前臺(tái)訪問動(dòng)態(tài)首頁(yè)計(jì)時(shí)
為了不讓ASP.NET的特性影響生成速度,第一次訪問首頁(yè)不計(jì)時(shí)。
2)讓首頁(yè)使用上述第6項(xiàng)測(cè)試中的復(fù)雜模板,前臺(tái)訪問動(dòng)態(tài)頁(yè)計(jì)時(shí)
10萬(wàn)篇文章時(shí)打開動(dòng)態(tài)首頁(yè)時(shí)間
小結(jié):動(dòng)易SiteFactory2.0的首頁(yè)的訪問速度可以說(shuō)用“飛快”來(lái)形容,無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),無(wú)論是簡(jiǎn)單模板還是復(fù)雜模板,首頁(yè)的HTML生成速度都在3秒左右。從數(shù)據(jù)中也可以看出來(lái),同樣的模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
當(dāng)我們和生成首頁(yè)的時(shí)間進(jìn)行對(duì)比,我們發(fā)現(xiàn)一個(gè)很特殊的現(xiàn)象:生成首頁(yè)的時(shí)間還小于訪問動(dòng)態(tài)首頁(yè)的時(shí)間。這是為什么呢?這是因?yàn)楸敬螠y(cè)試的統(tǒng)計(jì)時(shí)間是以頁(yè)面打開時(shí)間為準(zhǔn),這里面包含了三個(gè)時(shí)間:服務(wù)器端的程序執(zhí)行時(shí)間+IE下載頁(yè)面時(shí)間+IE解析頁(yè)面時(shí)間。生成首頁(yè)HTML時(shí),顯示的信息很少,所以后兩者幾乎不用時(shí)間;訪問動(dòng)態(tài)首頁(yè)時(shí),因?yàn)槭醉?yè)的信息量大,還有大量圖片等,所以后兩者的時(shí)間相對(duì)較長(zhǎng)。
[NextPage測(cè)評(píng)結(jié)果匯總和結(jié)論]
五、測(cè)評(píng)結(jié)果匯總和結(jié)論
從上面的結(jié)果可以看出SiteFactory能夠很輕松地承受100萬(wàn)的數(shù)據(jù)量,并且多數(shù)情況下我們很難看出100萬(wàn)數(shù)據(jù)量和10萬(wàn)數(shù)據(jù)量的性能差異。
一個(gè)CMS的性能好壞和多方面有關(guān):
1、查詢語(yǔ)句的合理性
2、索引是否正確
3、數(shù)據(jù)庫(kù)軟件的性能
4、硬件平臺(tái)
5、應(yīng)用程序的調(diào)用方法。
對(duì)于動(dòng)易SiteFactory來(lái)說(shuō),系統(tǒng)本身的設(shè)計(jì)能影響到的性能只限于后臺(tái)管理頁(yè)面,動(dòng)易SiteFactory的優(yōu)秀設(shè)計(jì)使得后臺(tái)管理能夠輕松承受100萬(wàn)的數(shù)據(jù)量。但前臺(tái)因?yàn)槟0搴蜆?biāo)簽是完全可以自定義的,所以前臺(tái)的性能和生成HTML時(shí)的性能受兩大方面的影響:
1、模板中調(diào)用的標(biāo)簽數(shù)量。調(diào)用的標(biāo)簽越多,速度越慢。
2、標(biāo)簽本身的設(shè)計(jì),其中標(biāo)簽中的SQL查詢語(yǔ)句是否合理、查詢語(yǔ)句中的對(duì)應(yīng)字段是否建立了索引,索引是否正確等直接影響了性能好壞。
動(dòng)易SiteFactory的前臺(tái)是否可以承載100萬(wàn)數(shù)據(jù)量,要看模板和標(biāo)簽的合理設(shè)計(jì)、數(shù)據(jù)庫(kù)對(duì)應(yīng)的優(yōu)化。不過從測(cè)試來(lái)看,官方提供的模板和標(biāo)簽還是比較合理的,能夠輕松承載100萬(wàn)的數(shù)據(jù)量。
由于用于測(cè)試的服務(wù)器只是一臺(tái)普通的臺(tái)式機(jī),如果使用專業(yè)的品牌服務(wù)器,相信生成速度和訪問速度都有很大的提高。
下一個(gè)性能測(cè)評(píng)報(bào)告,我們將重點(diǎn)測(cè)試動(dòng)易SiteFactory的并發(fā)訪問負(fù)載能力。敬請(qǐng)期待!
[NextPage評(píng)測(cè)反思]
反思:
從我們的測(cè)評(píng)結(jié)果來(lái)看,動(dòng)易SiteFactory絕對(duì)可以用飛快來(lái)形容,我們平時(shí)在動(dòng)易官方網(wǎng)站的使用情況也證實(shí)了這一點(diǎn),但為什么老是有用戶反映說(shuō)他們感覺很慢呢?有以下幾個(gè)原因:
1、Asp.Net的特性是第一次訪問某個(gè)頁(yè)面時(shí),要進(jìn)行編譯過程,所以第一次訪問會(huì)很慢,再后面無(wú)論是自己再訪問還是其他人再訪問這個(gè)頁(yè)面,因?yàn)橐呀?jīng)不需要編譯過程了,所以會(huì)飛快。但很多用戶不明白這一點(diǎn),總是以自己第一次頁(yè)面的時(shí)間來(lái)衡量,所以當(dāng)然會(huì)感覺慢,因?yàn)檫@不是感覺,而是事實(shí)。
2、Asp.Net程序的對(duì)運(yùn)行環(huán)境的要求相對(duì)ASP/PHP要高不少,一般的100元的那種虛擬主機(jī)因?yàn)榻o每個(gè)網(wǎng)站分配的資源是非常非常少的(比如限制了1%的CPU占用率,100M的內(nèi)存),這樣的主機(jī)是不適合運(yùn)行Asp.Net程序的,而很多用戶恰恰是用這些主機(jī)來(lái)測(cè)試動(dòng)易SiteFactory,再和ASP/PHP程序一對(duì)比,自然就會(huì)感覺較慢。
3、動(dòng)易SiteFactory本身做性能做了很多優(yōu)化,大量使用了緩存,是一種以內(nèi)存換速度的作法,很多主機(jī)就算沒有對(duì)CPU限制得過死,但對(duì)內(nèi)存占用一般都限制在100M左右,遠(yuǎn)小于SiteFactory對(duì)內(nèi)存的需求,導(dǎo)致許多東西無(wú)法緩存,從而導(dǎo)致動(dòng)易SiteFactory運(yùn)行得較慢。當(dāng)主機(jī)滿足動(dòng)易SiteFactory的內(nèi)存需求時(shí),動(dòng)易SiteFactory是可以運(yùn)行的非??斓摹奈覀兊倪@次測(cè)試結(jié)果來(lái)看,普通的臺(tái)式機(jī)配置就可以完全滿足動(dòng)易SiteFactory的需求。
4、許多用戶用來(lái)測(cè)試動(dòng)易SiteFactory的電腦上裝滿了各種各樣的軟件,特別是一些殺毒軟件沒有配置好,一些內(nèi)存優(yōu)化軟件不斷的清除動(dòng)易SiteFactory生成的緩存對(duì)象,一些軟件的沖突導(dǎo)致IIS的應(yīng)用池不斷重啟,從而導(dǎo)致動(dòng)易SiteFactory每次訪問都要重新編譯,所以會(huì)出現(xiàn)非常慢的情況。如果你遇到這種情況,請(qǐng)檢查電腦的環(huán)境配置。用來(lái)測(cè)試動(dòng)易SiteFactory盡可能的在干凈的Windows2003系統(tǒng)下進(jìn)行(可以安裝虛擬機(jī))。
2008年12月03日,我們對(duì)外發(fā)布了基于微軟.net平臺(tái)的企業(yè)級(jí)內(nèi)容管理系統(tǒng)——?jiǎng)右?SiteFactory? 2.0 正式版。此次發(fā)布的 SiteFactory? 2.0 版本不僅在系統(tǒng)架構(gòu)方面進(jìn)行了最大程度的改進(jìn),而且對(duì)查詢語(yǔ)句、索引、應(yīng)用程序調(diào)用及數(shù)據(jù)庫(kù)性能等方面進(jìn)行了仔細(xì)且嚴(yán)格的優(yōu)化!特別是內(nèi)置于Xpower模板解析引擎中的標(biāo)簽庫(kù)全部重新書寫及優(yōu)化,重新按照模板設(shè)計(jì)思路的進(jìn)行目錄歸類,精簡(jiǎn)標(biāo)簽數(shù)量到200多個(gè)等一系列優(yōu)化和改進(jìn)之后,無(wú)論是易用性還是執(zhí)行效率上都遠(yuǎn)遠(yuǎn)超越了歷屆版本。
距離 SiteFactory? 面市已經(jīng)過去數(shù)月,雖每一次版本的更新都伴隨著負(fù)載和性能的一次提升,但具體提升多少并沒有多少人知道。如今,在新版本架構(gòu)和執(zhí)行性能趨于穩(wěn)定后,我們特別組織動(dòng)易測(cè)試部對(duì)SiteFactory? 2.0 的數(shù)據(jù)負(fù)載能力進(jìn)行一次全方位的深度評(píng)測(cè)。希望通過具有說(shuō)服力的“實(shí)際評(píng)測(cè)數(shù)據(jù)”,為大家展示SiteFactory? 2.0 真正的負(fù)載實(shí)力。
《用數(shù)據(jù)說(shuō)話!動(dòng)易SiteFactory2.0負(fù)載能力深度測(cè)評(píng)報(bào)告》將被分成數(shù)個(gè)篇章以評(píng)測(cè)系列的方式進(jìn)行介紹,整個(gè)評(píng)測(cè)過程采用透明、公開的方式供大家監(jiān)督!如果有誰(shuí)對(duì)測(cè)評(píng)過程和測(cè)評(píng)結(jié)果有疑問,可以自行參照我們的測(cè)試過程搭建類似的測(cè)試環(huán)境自己測(cè)試和對(duì)比測(cè)試結(jié)果。
下面我們就開始第一部分的評(píng)測(cè):
[NextPage測(cè)試環(huán)境]
二、測(cè)試環(huán)境1、服務(wù)器環(huán)境:
為了測(cè)試普通環(huán)境下SiteFactory的負(fù)載能力,特使用普通臺(tái)式機(jī)作為服務(wù)器來(lái)測(cè)試SiteFactory的運(yùn)行情況。
服務(wù)器配置如下:
服務(wù)器配置
- Intel? Core?2 CPU 4400 @ 2.00GHZ 2.00 GHz,2.00GB的內(nèi)存
- 250G硬盤
- 服務(wù)器上安裝了Windows2003,搭建了必要的環(huán)境,為了避免其他網(wǎng)站可能會(huì)產(chǎn)生的干擾,服務(wù)器上只放有一個(gè)測(cè)試網(wǎng)站。
2、客戶端環(huán)境:
為避免某一臺(tái)客戶端電腦配置太慢會(huì)引起誤差,采用3臺(tái)不同的電腦上來(lái)測(cè)試。三臺(tái)電腦的配置分別為:
3、其他環(huán)境:
為避免因特網(wǎng)網(wǎng)速會(huì)引起的誤差,采用局域網(wǎng)訪問方式。
為了與真實(shí)應(yīng)用的效果,不是采用程序直接錄入100萬(wàn)條最簡(jiǎn)單的數(shù)據(jù),而是通過用戶提供的實(shí)際網(wǎng)站數(shù)據(jù),準(zhǔn)備了10萬(wàn)數(shù)據(jù)量和100萬(wàn)數(shù)據(jù)量的數(shù)據(jù)庫(kù)來(lái)進(jìn)行測(cè)試。
下圖是顯示有10萬(wàn)/100萬(wàn)篇文章,全是常規(guī)文章,而不是統(tǒng)一添加的相同數(shù)據(jù)。
[NextPage評(píng)測(cè)工具]
三、評(píng)測(cè)工具
1、載入時(shí)間測(cè)試工具(webwait,網(wǎng)址: )
WebWait是一個(gè)提供測(cè)量網(wǎng)站載入速度的網(wǎng)站。它可以計(jì)算網(wǎng)站從讀取到完成需要多少時(shí)間,包括所有圖象、stylesheets和JavaScript。
WebWait目前支持FireFox、Opera和IE三種瀏覽器,你可以設(shè)置載入頁(yè)面的次數(shù)和每次的時(shí)間間隔,默認(rèn)5次之后計(jì)算出平均值就為結(jié)果了。
2、測(cè)試用瀏覽器
微軟IE7 瀏覽器
[NextPage后臺(tái)管理頁(yè)面的性能測(cè)試(一)]
四、評(píng)測(cè)步驟
1、后臺(tái)管理頁(yè)面的性能測(cè)試
使用WebWait來(lái)測(cè)試網(wǎng)頁(yè)載入時(shí)間,從點(diǎn)下鏈接開始,到頁(yè)面打開計(jì)時(shí)。每臺(tái)電腦上點(diǎn)擊6次,只取后5次時(shí)間的平均值。(說(shuō)明:因?yàn)锳SP.NET的“第一次訪問頁(yè)面會(huì)進(jìn)行編譯等操作而導(dǎo)致會(huì)比較慢,后面訪問才會(huì)非常快”的特性,所以測(cè)試結(jié)果不取第一次打開頁(yè)面時(shí)間。)
1)全部?jī)?nèi)容打開時(shí)間:
10萬(wàn)篇文章時(shí)后臺(tái)管理“全部?jī)?nèi)容”打開時(shí)間
100萬(wàn)篇文章時(shí)后臺(tái)管理“全部?jī)?nèi)容”打開時(shí)間
[NextPage后臺(tái)管理頁(yè)面的性能測(cè)試(二)]
2)待審核內(nèi)容打開時(shí)間
10萬(wàn)篇文章時(shí)待審核內(nèi)容打開時(shí)間
[NextPage后臺(tái)管理頁(yè)面的性能測(cè)試(三)]
3)已審核內(nèi)容打開時(shí)間
10萬(wàn)篇文章時(shí)已審核內(nèi)容打開時(shí)間
100萬(wàn)篇文章時(shí)已審核內(nèi)容打開時(shí)間
小結(jié):動(dòng)易SiteFactory的后臺(tái)管理可以輕松承載100萬(wàn)的數(shù)據(jù),并且和10萬(wàn)數(shù)據(jù)時(shí)相比,沒有任何性能上的衰減。無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),后臺(tái)管理的幾個(gè)主要頁(yè)面的打開時(shí)間都在0.2秒以內(nèi),可以說(shuō)是“閃電”來(lái)形容,絕對(duì)是“飛快”的級(jí)別。
[NextPage生成HTML頁(yè)面速度測(cè)試(一)]
2、生成HTML頁(yè)面速度測(cè)試
1)內(nèi)容頁(yè)模板最簡(jiǎn)化,只保留顯示文章的標(biāo)題、作者、更新時(shí)間、內(nèi)容等,不要任何其他不相關(guān)的標(biāo)簽,如相關(guān)文章、推薦文章、熱門文章等,生成1萬(wàn)篇文章計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
為了不讓ASP.NET的特性影響生成速度,先小量生成10篇文章,不計(jì)時(shí),然后開始生成1萬(wàn)篇文章并計(jì)時(shí)。
10萬(wàn)篇文章數(shù)據(jù)量,生成1萬(wàn)篇文章計(jì)時(shí)
2)使用一個(gè)官方默認(rèn)提供的模板(除了含有文章的標(biāo)題、作者、更新時(shí)間、內(nèi)容等,還有相關(guān)文章、推薦文章、熱門文章等標(biāo)簽),生成1萬(wàn)篇文章計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
最后的運(yùn)行時(shí)間見下圖:
小結(jié):動(dòng)易SiteFactory2.0的內(nèi)容頁(yè)的生成速度可以說(shuō)用“飛快”來(lái)形容,無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),無(wú)論是簡(jiǎn)單模板還是復(fù)雜模板,內(nèi)容頁(yè)的HTML生成速度都達(dá)到了每秒可以生成6-10篇。從數(shù)據(jù)中也可以看出來(lái),同樣的模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
[NextPage生成HTML頁(yè)面速度測(cè)試(二)]
3)將6萬(wàn)多篇文章歸屬于某欄目,然后為這個(gè)欄目制作一個(gè)最簡(jiǎn)單的欄目列表頁(yè)模板,模板中只有一個(gè)分頁(yè)列表,沒有熱門文章、推薦文章等標(biāo)簽。生成這個(gè)欄目列表頁(yè),計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
從上圖可以看出,這個(gè)欄目下共有6萬(wàn)多篇文章,每頁(yè)20篇文章,共要生成3000多頁(yè)。
為了不讓ASP.NET的特性影響生成速度,先生成某個(gè)只有10篇文章的欄目列表,再生成此欄目的列表并計(jì)時(shí)。
4)為上述欄目使用官方默認(rèn)的欄目列表頁(yè)模板,生成欄目列表頁(yè),計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
小結(jié):動(dòng)易SiteFactory2.0的欄目頁(yè)的生成速度可以說(shuō)用“飛快”來(lái)形容。無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),使用簡(jiǎn)單模板的情況下,生成一個(gè)含有6萬(wàn)多篇文章(每頁(yè)20篇文章,共要生成3000多個(gè)頁(yè)面)的欄目頁(yè)的生成時(shí)間都在150秒左右,約每秒種生成20頁(yè),性能上沒有太大的差異。
當(dāng)使用復(fù)雜模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)出現(xiàn)了較大的性能差異,但100萬(wàn)數(shù)據(jù)和復(fù)雜模板時(shí)仍能達(dá)到每秒鐘10個(gè)頁(yè)面左右的速度,仍可以歸于“飛快”級(jí)別。對(duì)比兩個(gè)表格的數(shù)據(jù),我們可以清楚的看到模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
[NextPage生成HTML頁(yè)面速度測(cè)試(三)]
5)為首頁(yè)節(jié)點(diǎn)制作一個(gè)簡(jiǎn)單的模板(只調(diào)用4個(gè)欄目的列表),生成首頁(yè)計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
為了不讓ASP.NET的特性影響生成速度,第一次生成首頁(yè)不計(jì)時(shí)。
6)為首頁(yè)制作一個(gè)復(fù)雜的模板(調(diào)用20個(gè)欄目的列表,還有其他各種功能),生成首頁(yè)計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:
小結(jié):動(dòng)易SiteFactory2.0的首頁(yè)的生成速度可以說(shuō)用“飛快”來(lái)形容,無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),無(wú)論是簡(jiǎn)單模板還是復(fù)雜模板,首頁(yè)的HTML生成速度都在1秒左右。從數(shù)據(jù)中也可以看出來(lái),同樣的模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
[NextPage動(dòng)態(tài)頁(yè)訪問性能測(cè)試]
3、動(dòng)態(tài)頁(yè)訪問性能測(cè)試
1)讓首頁(yè)節(jié)點(diǎn)使用上述第5項(xiàng)測(cè)試中的簡(jiǎn)單模板,前臺(tái)訪問動(dòng)態(tài)首頁(yè)計(jì)時(shí)
為了不讓ASP.NET的特性影響生成速度,第一次訪問首頁(yè)不計(jì)時(shí)。
2)讓首頁(yè)使用上述第6項(xiàng)測(cè)試中的復(fù)雜模板,前臺(tái)訪問動(dòng)態(tài)頁(yè)計(jì)時(shí)
10萬(wàn)篇文章時(shí)打開動(dòng)態(tài)首頁(yè)時(shí)間
小結(jié):動(dòng)易SiteFactory2.0的首頁(yè)的訪問速度可以說(shuō)用“飛快”來(lái)形容,無(wú)論是10萬(wàn)數(shù)據(jù)還是100萬(wàn)數(shù)據(jù),無(wú)論是簡(jiǎn)單模板還是復(fù)雜模板,首頁(yè)的HTML生成速度都在3秒左右。從數(shù)據(jù)中也可以看出來(lái),同樣的模板時(shí),10萬(wàn)數(shù)據(jù)和100萬(wàn)數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。
當(dāng)我們和生成首頁(yè)的時(shí)間進(jìn)行對(duì)比,我們發(fā)現(xiàn)一個(gè)很特殊的現(xiàn)象:生成首頁(yè)的時(shí)間還小于訪問動(dòng)態(tài)首頁(yè)的時(shí)間。這是為什么呢?這是因?yàn)楸敬螠y(cè)試的統(tǒng)計(jì)時(shí)間是以頁(yè)面打開時(shí)間為準(zhǔn),這里面包含了三個(gè)時(shí)間:服務(wù)器端的程序執(zhí)行時(shí)間+IE下載頁(yè)面時(shí)間+IE解析頁(yè)面時(shí)間。生成首頁(yè)HTML時(shí),顯示的信息很少,所以后兩者幾乎不用時(shí)間;訪問動(dòng)態(tài)首頁(yè)時(shí),因?yàn)槭醉?yè)的信息量大,還有大量圖片等,所以后兩者的時(shí)間相對(duì)較長(zhǎng)。
[NextPage測(cè)評(píng)結(jié)果匯總和結(jié)論]
五、測(cè)評(píng)結(jié)果匯總和結(jié)論
從上面的結(jié)果可以看出SiteFactory能夠很輕松地承受100萬(wàn)的數(shù)據(jù)量,并且多數(shù)情況下我們很難看出100萬(wàn)數(shù)據(jù)量和10萬(wàn)數(shù)據(jù)量的性能差異。
一個(gè)CMS的性能好壞和多方面有關(guān):
1、查詢語(yǔ)句的合理性
2、索引是否正確
3、數(shù)據(jù)庫(kù)軟件的性能
4、硬件平臺(tái)
5、應(yīng)用程序的調(diào)用方法。
對(duì)于動(dòng)易SiteFactory來(lái)說(shuō),系統(tǒng)本身的設(shè)計(jì)能影響到的性能只限于后臺(tái)管理頁(yè)面,動(dòng)易SiteFactory的優(yōu)秀設(shè)計(jì)使得后臺(tái)管理能夠輕松承受100萬(wàn)的數(shù)據(jù)量。但前臺(tái)因?yàn)槟0搴蜆?biāo)簽是完全可以自定義的,所以前臺(tái)的性能和生成HTML時(shí)的性能受兩大方面的影響:
1、模板中調(diào)用的標(biāo)簽數(shù)量。調(diào)用的標(biāo)簽越多,速度越慢。
2、標(biāo)簽本身的設(shè)計(jì),其中標(biāo)簽中的SQL查詢語(yǔ)句是否合理、查詢語(yǔ)句中的對(duì)應(yīng)字段是否建立了索引,索引是否正確等直接影響了性能好壞。
動(dòng)易SiteFactory的前臺(tái)是否可以承載100萬(wàn)數(shù)據(jù)量,要看模板和標(biāo)簽的合理設(shè)計(jì)、數(shù)據(jù)庫(kù)對(duì)應(yīng)的優(yōu)化。不過從測(cè)試來(lái)看,官方提供的模板和標(biāo)簽還是比較合理的,能夠輕松承載100萬(wàn)的數(shù)據(jù)量。
由于用于測(cè)試的服務(wù)器只是一臺(tái)普通的臺(tái)式機(jī),如果使用專業(yè)的品牌服務(wù)器,相信生成速度和訪問速度都有很大的提高。
下一個(gè)性能測(cè)評(píng)報(bào)告,我們將重點(diǎn)測(cè)試動(dòng)易SiteFactory的并發(fā)訪問負(fù)載能力。敬請(qǐng)期待!
[NextPage評(píng)測(cè)反思]
反思:
從我們的測(cè)評(píng)結(jié)果來(lái)看,動(dòng)易SiteFactory絕對(duì)可以用飛快來(lái)形容,我們平時(shí)在動(dòng)易官方網(wǎng)站的使用情況也證實(shí)了這一點(diǎn),但為什么老是有用戶反映說(shuō)他們感覺很慢呢?有以下幾個(gè)原因:
1、Asp.Net的特性是第一次訪問某個(gè)頁(yè)面時(shí),要進(jìn)行編譯過程,所以第一次訪問會(huì)很慢,再后面無(wú)論是自己再訪問還是其他人再訪問這個(gè)頁(yè)面,因?yàn)橐呀?jīng)不需要編譯過程了,所以會(huì)飛快。但很多用戶不明白這一點(diǎn),總是以自己第一次頁(yè)面的時(shí)間來(lái)衡量,所以當(dāng)然會(huì)感覺慢,因?yàn)檫@不是感覺,而是事實(shí)。
2、Asp.Net程序的對(duì)運(yùn)行環(huán)境的要求相對(duì)ASP/PHP要高不少,一般的100元的那種虛擬主機(jī)因?yàn)榻o每個(gè)網(wǎng)站分配的資源是非常非常少的(比如限制了1%的CPU占用率,100M的內(nèi)存),這樣的主機(jī)是不適合運(yùn)行Asp.Net程序的,而很多用戶恰恰是用這些主機(jī)來(lái)測(cè)試動(dòng)易SiteFactory,再和ASP/PHP程序一對(duì)比,自然就會(huì)感覺較慢。
3、動(dòng)易SiteFactory本身做性能做了很多優(yōu)化,大量使用了緩存,是一種以內(nèi)存換速度的作法,很多主機(jī)就算沒有對(duì)CPU限制得過死,但對(duì)內(nèi)存占用一般都限制在100M左右,遠(yuǎn)小于SiteFactory對(duì)內(nèi)存的需求,導(dǎo)致許多東西無(wú)法緩存,從而導(dǎo)致動(dòng)易SiteFactory運(yùn)行得較慢。當(dāng)主機(jī)滿足動(dòng)易SiteFactory的內(nèi)存需求時(shí),動(dòng)易SiteFactory是可以運(yùn)行的非??斓摹奈覀兊倪@次測(cè)試結(jié)果來(lái)看,普通的臺(tái)式機(jī)配置就可以完全滿足動(dòng)易SiteFactory的需求。
4、許多用戶用來(lái)測(cè)試動(dòng)易SiteFactory的電腦上裝滿了各種各樣的軟件,特別是一些殺毒軟件沒有配置好,一些內(nèi)存優(yōu)化軟件不斷的清除動(dòng)易SiteFactory生成的緩存對(duì)象,一些軟件的沖突導(dǎo)致IIS的應(yīng)用池不斷重啟,從而導(dǎo)致動(dòng)易SiteFactory每次訪問都要重新編譯,所以會(huì)出現(xiàn)非常慢的情況。如果你遇到這種情況,請(qǐng)檢查電腦的環(huán)境配置。用來(lái)測(cè)試動(dòng)易SiteFactory盡可能的在干凈的Windows2003系統(tǒng)下進(jìn)行(可以安裝虛擬機(jī))。
用戶登錄
還沒有賬號(hào)?
立即注冊(cè)