目錄
目錄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īng)用程序調(diào)用及數(shù)據(jù)庫性能等方面進(jìn)行了仔細(xì)且嚴(yán)格的優(yōu)化!特別是內(nèi)置于Xpower模板解析引擎中的標(biāo)簽庫全部重新書寫及優(yōu)化,重新按照模板設(shè)計(jì)思路的進(jìn)行目錄歸類,精簡(jiǎn)標(biāo)簽數(shù)量到200多個(gè)等一系列優(yōu)化和改進(jìn)之后,無論是易用性還是執(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è)。希望通過具有說服力的“實(shí)際評(píng)測(cè)數(shù)據(jù)”,為大家展示SiteFactory? 2.0 真正的負(fù)載實(shí)力。

《用數(shù)據(jù)說話!動(dòng)易SiteFactory2.0負(fù)載能力深度測(cè)評(píng)報(bào)告》將被分成數(shù)個(gè)篇章以評(píng)測(cè)系列的方式進(jìn)行介紹,整個(gè)評(píng)測(cè)過程采用透明、公開的方式供大家監(jiān)督!如果有誰對(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ù)器來測(cè)試SiteFactory的運(yùn)行情況。
服務(wù)器配置如下:
服務(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)不同的電腦上來測(cè)試。三臺(tái)電腦的配置分別為:



  3、其他環(huán)境:

為避免因特網(wǎng)網(wǎng)速會(huì)引起的誤差,采用局域網(wǎng)訪問方式。
為了與真實(shí)應(yīng)用的效果,不是采用程序直接錄入100萬條最簡(jiǎn)單的數(shù)據(jù),而是通過用戶提供的實(shí)際網(wǎng)站數(shù)據(jù),準(zhǔn)備了10萬數(shù)據(jù)量和100萬數(shù)據(jù)量的數(shù)據(jù)庫來進(jìn)行測(cè)試。
  下圖是顯示有10萬/100萬篇文章,全是常規(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è)置載入頁面的次數(shù)和每次的時(shí)間間隔,默認(rèn)5次之后計(jì)算出平均值就為結(jié)果了。



2、測(cè)試用瀏覽器

微軟IE7 瀏覽器
 
[NextPage后臺(tái)管理頁面的性能測(cè)試(一)]

  四、評(píng)測(cè)步驟                                                                                                                                  

  1、后臺(tái)管理頁面的性能測(cè)試

使用WebWait來測(cè)試網(wǎng)頁載入時(shí)間,從點(diǎn)下鏈接開始,到頁面打開計(jì)時(shí)。每臺(tái)電腦上點(diǎn)擊6次,只取后5次時(shí)間的平均值。(說明:因?yàn)锳SP.NET的“第一次訪問頁面會(huì)進(jìn)行編譯等操作而導(dǎo)致會(huì)比較慢,后面訪問才會(huì)非??臁钡奶匦裕詼y(cè)試結(jié)果不取第一次打開頁面時(shí)間。)

1)全部?jī)?nèi)容打開時(shí)間:
10萬篇文章時(shí)后臺(tái)管理“全部?jī)?nèi)容”打開時(shí)間



100萬篇文章時(shí)后臺(tái)管理“全部?jī)?nèi)容”打開時(shí)間


[NextPage后臺(tái)管理頁面的性能測(cè)試(二)]

2)待審核內(nèi)容打開時(shí)間
10萬篇文章時(shí)待審核內(nèi)容打開時(shí)間

 
100萬篇文章時(shí)待審核內(nèi)容打開時(shí)間



[NextPage后臺(tái)管理頁面的性能測(cè)試(三)]

3)已審核內(nèi)容打開時(shí)間

10萬篇文章時(shí)已審核內(nèi)容打開時(shí)間


100萬篇文章時(shí)已審核內(nèi)容打開時(shí)間


  小結(jié):動(dòng)易SiteFactory的后臺(tái)管理可以輕松承載100萬的數(shù)據(jù),并且和10萬數(shù)據(jù)時(shí)相比,沒有任何性能上的衰減。無論是10萬數(shù)據(jù)還是100萬數(shù)據(jù),后臺(tái)管理的幾個(gè)主要頁面的打開時(shí)間都在0.2秒以內(nèi),可以說是“閃電”來形容,絕對(duì)是“飛快”的級(jí)別。

[NextPage生成HTML頁面速度測(cè)試(一)]

  2、生成HTML頁面速度測(cè)試

1)內(nèi)容頁模板最簡(jiǎn)化,只保留顯示文章的標(biāo)題、作者、更新時(shí)間、內(nèi)容等,不要任何其他不相關(guān)的標(biāo)簽,如相關(guān)文章、推薦文章、熱門文章等,生成1萬篇文章計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:


為了不讓ASP.NET的特性影響生成速度,先小量生成10篇文章,不計(jì)時(shí),然后開始生成1萬篇文章并計(jì)時(shí)。

10萬篇文章數(shù)據(jù)量,生成1萬篇文章計(jì)時(shí)


2)使用一個(gè)官方默認(rèn)提供的模板(除了含有文章的標(biāo)題、作者、更新時(shí)間、內(nèi)容等,還有相關(guān)文章、推薦文章、熱門文章等標(biāo)簽),生成1萬篇文章計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:


最后的運(yùn)行時(shí)間見下圖:

 

  小結(jié):動(dòng)易SiteFactory2.0的內(nèi)容頁的生成速度可以說用“飛快”來形容,無論是10萬數(shù)據(jù)還是100萬數(shù)據(jù),無論是簡(jiǎn)單模板還是復(fù)雜模板,內(nèi)容頁的HTML生成速度都達(dá)到了每秒可以生成6-10篇。從數(shù)據(jù)中也可以看出來,同樣的模板時(shí),10萬數(shù)據(jù)和100萬數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。

[NextPage生成HTML頁面速度測(cè)試(二)]

3)將6萬多篇文章歸屬于某欄目,然后為這個(gè)欄目制作一個(gè)最簡(jiǎn)單的欄目列表頁模板,模板中只有一個(gè)分頁列表,沒有熱門文章、推薦文章等標(biāo)簽。生成這個(gè)欄目列表頁,計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:


從上圖可以看出,這個(gè)欄目下共有6萬多篇文章,每頁20篇文章,共要生成3000多頁。
為了不讓ASP.NET的特性影響生成速度,先生成某個(gè)只有10篇文章的欄目列表,再生成此欄目的列表并計(jì)時(shí)。


4)為上述欄目使用官方默認(rèn)的欄目列表頁模板,生成欄目列表頁,計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:




  小結(jié):動(dòng)易SiteFactory2.0的欄目頁的生成速度可以說用“飛快”來形容。無論是10萬數(shù)據(jù)還是100萬數(shù)據(jù),使用簡(jiǎn)單模板的情況下,生成一個(gè)含有6萬多篇文章(每頁20篇文章,共要生成3000多個(gè)頁面)的欄目頁的生成時(shí)間都在150秒左右,約每秒種生成20頁,性能上沒有太大的差異。

當(dāng)使用復(fù)雜模板時(shí),10萬數(shù)據(jù)和100萬數(shù)據(jù)在生成HTML時(shí)出現(xiàn)了較大的性能差異,但100萬數(shù)據(jù)和復(fù)雜模板時(shí)仍能達(dá)到每秒鐘10個(gè)頁面左右的速度,仍可以歸于“飛快”級(jí)別。對(duì)比兩個(gè)表格的數(shù)據(jù),我們可以清楚的看到模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。

[NextPage生成HTML頁面速度測(cè)試(三)]

5)為首頁節(jié)點(diǎn)制作一個(gè)簡(jiǎn)單的模板(只調(diào)用4個(gè)欄目的列表),生成首頁計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:


為了不讓ASP.NET的特性影響生成速度,第一次生成首頁不計(jì)時(shí)。




6)為首頁制作一個(gè)復(fù)雜的模板(調(diào)用20個(gè)欄目的列表,還有其他各種功能),生成首頁計(jì)時(shí)。模板的前臺(tái)顯示效果見下圖:






  小結(jié):動(dòng)易SiteFactory2.0的首頁的生成速度可以說用“飛快”來形容,無論是10萬數(shù)據(jù)還是100萬數(shù)據(jù),無論是簡(jiǎn)單模板還是復(fù)雜模板,首頁的HTML生成速度都在1秒左右。從數(shù)據(jù)中也可以看出來,同樣的模板時(shí),10萬數(shù)據(jù)和100萬數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。

[NextPage動(dòng)態(tài)頁訪問性能測(cè)試]

  3、動(dòng)態(tài)頁訪問性能測(cè)試

1)讓首頁節(jié)點(diǎn)使用上述第5項(xiàng)測(cè)試中的簡(jiǎn)單模板,前臺(tái)訪問動(dòng)態(tài)首頁計(jì)時(shí)
為了不讓ASP.NET的特性影響生成速度,第一次訪問首頁不計(jì)時(shí)。



2)讓首頁使用上述第6項(xiàng)測(cè)試中的復(fù)雜模板,前臺(tái)訪問動(dòng)態(tài)頁計(jì)時(shí)
10萬篇文章時(shí)打開動(dòng)態(tài)首頁時(shí)間



  小結(jié):動(dòng)易SiteFactory2.0的首頁的訪問速度可以說用“飛快”來形容,無論是10萬數(shù)據(jù)還是100萬數(shù)據(jù),無論是簡(jiǎn)單模板還是復(fù)雜模板,首頁的HTML生成速度都在3秒左右。從數(shù)據(jù)中也可以看出來,同樣的模板時(shí),10萬數(shù)據(jù)和100萬數(shù)據(jù)在生成HTML時(shí)沒有太大的性能差異,但模板的復(fù)雜度則直接影響了生成速度,模板越復(fù)雜,調(diào)用的標(biāo)簽越多,性能衰減得越厲害。

當(dāng)我們和生成首頁的時(shí)間進(jìn)行對(duì)比,我們發(fā)現(xiàn)一個(gè)很特殊的現(xiàn)象:生成首頁的時(shí)間還小于訪問動(dòng)態(tài)首頁的時(shí)間。這是為什么呢?這是因?yàn)楸敬螠y(cè)試的統(tǒng)計(jì)時(shí)間是以頁面打開時(shí)間為準(zhǔn),這里面包含了三個(gè)時(shí)間:服務(wù)器端的程序執(zhí)行時(shí)間+IE下載頁面時(shí)間+IE解析頁面時(shí)間。生成首頁HTML時(shí),顯示的信息很少,所以后兩者幾乎不用時(shí)間;訪問動(dòng)態(tài)首頁時(shí),因?yàn)槭醉摰男畔⒘看螅€有大量圖片等,所以后兩者的時(shí)間相對(duì)較長(zhǎng)。

[NextPage測(cè)評(píng)結(jié)果匯總和結(jié)論]

  五、測(cè)評(píng)結(jié)果匯總和結(jié)論






從上面的結(jié)果可以看出SiteFactory能夠很輕松地承受100萬的數(shù)據(jù)量,并且多數(shù)情況下我們很難看出100萬數(shù)據(jù)量和10萬數(shù)據(jù)量的性能差異。

一個(gè)CMS的性能好壞和多方面有關(guān):

1、查詢語句的合理性
2、索引是否正確
3、數(shù)據(jù)庫軟件的性能
4、硬件平臺(tái)
5、應(yīng)用程序的調(diào)用方法。

對(duì)于動(dòng)易SiteFactory來說,系統(tǒng)本身的設(shè)計(jì)能影響到的性能只限于后臺(tái)管理頁面,動(dòng)易SiteFactory的優(yōu)秀設(shè)計(jì)使得后臺(tái)管理能夠輕松承受100萬的數(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查詢語句是否合理、查詢語句中的對(duì)應(yīng)字段是否建立了索引,索引是否正確等直接影響了性能好壞。

動(dòng)易SiteFactory的前臺(tái)是否可以承載100萬數(shù)據(jù)量,要看模板和標(biāo)簽的合理設(shè)計(jì)、數(shù)據(jù)庫對(duì)應(yīng)的優(yōu)化。不過從測(cè)試來看,官方提供的模板和標(biāo)簽還是比較合理的,能夠輕松承載100萬的數(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é)果來看,動(dòng)易SiteFactory絕對(duì)可以用飛快來形容,我們平時(shí)在動(dòng)易官方網(wǎng)站的使用情況也證實(shí)了這一點(diǎn),但為什么老是有用戶反映說他們感覺很慢呢?有以下幾個(gè)原因:

1、Asp.Net的特性是第一次訪問某個(gè)頁面時(shí),要進(jìn)行編譯過程,所以第一次訪問會(huì)很慢,再后面無論是自己再訪問還是其他人再訪問這個(gè)頁面,因?yàn)橐呀?jīng)不需要編譯過程了,所以會(huì)飛快。但很多用戶不明白這一點(diǎn),總是以自己第一次頁面的時(shí)間來衡量,所以當(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ī)來測(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)致許多東西無法緩存,從而導(dǎo)致動(dòng)易SiteFactory運(yùn)行得較慢。當(dāng)主機(jī)滿足動(dòng)易SiteFactory的內(nèi)存需求時(shí),動(dòng)易SiteFactory是可以運(yùn)行的非??斓摹奈覀兊倪@次測(cè)試結(jié)果來看,普通的臺(tái)式機(jī)配置就可以完全滿足動(dòng)易SiteFactory的需求。

4、許多用戶用來測(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)境配置。用來測(cè)試動(dòng)易SiteFactory盡可能的在干凈的Windows2003系統(tǒng)下進(jìn)行(可以安裝虛擬機(jī))。
【打印正文】 發(fā)布時(shí)間:2008-12-04 10:31:46 瀏覽次數(shù): 作者:動(dòng)易測(cè)試部 來源:本站原創(chuàng)
×

用戶登錄