• 沒有找到結果。

第四章 系統效能評估

4.2 客戶端等待時間、伺服器處理能力

4.2.1 實驗目的

動態網頁乃是由動態網頁應用程式所動態產生,在產生期間須耗費伺服器之 運算資源,而越需要運算資源的動態網頁應用程式,其執行時間也越久,使得客 戶端之等待的時間也相對增加,故在此實驗當中,使用一可調整耗用伺服器計算 資源程度之PHP 動態網頁應用程式(CPU-Bound),減少網路傳輸量的影響,藉 以得知Application-Level 動態網頁快取系統,對伺服器處理能力與客戶端等待時 間之影響。

4.2.2 實驗設計

由httperf 所在之客戶端,同時向伺服器端提出 10 個相同請求,請求執行一 PHP 動態網頁程式,此應用程式主要執行如後數學方程式 -- f(x) =( x)2,並 以 x 值為該方程式之自零起逐次遞增計算迴圈次數,最後則僅輸出最終數字計算 結果回覆客戶端,圖4.1 即為實驗所用之 PHP 動態網頁程式之示意程式碼(Pseudo Code)。

圖4.1、CPU-Bound PHP Web Application 之 Pseudo Code

for ( i=0 ; i < x ; i++ ) {

result = power ( square ( i ) );

}

print result;

本實驗共分為下列三組之不同實驗組別:

„ PHP

為使用原始方式執行動態網頁應用程式之情境,客戶端以 Type A URL 傳遞 x 值供該動態網頁應用程式執行。

„ FR(First Request)

為使用Application-Level 動態網頁快取系統之情境,客戶端為初次 向伺服器端提出請求,此時伺服器端尚未有所請求動態網頁之快取文 件,客戶端以Type B URL 傳遞 x 值供該動態網頁應用程式執行。

„ AFR (After First Request)

為使用Application-Level 動態網頁快取系統之情境,客戶端以 Type B URL 向伺服器端提出請求,此時伺服器端已有所請求動態網頁之快 取文件。

由這三組實驗組別所得出之真實數據,將可供作Application-Level 動態網頁快取 系統之效率表現依據。

4.2.3 實驗結果與分析

4.2 是伺服器處理能力比較圖,其 x 軸為方程式變數 x 之值,而 y 軸則是 網頁伺服器每秒所能處理之最大請求數量,由此圖可以發現雖然快取前之FR 較 原本 PHP 減少平均約 11.7%,但這即是快取所必須付出的代價,不過快取後之 AFR 卻較原本 PHP 要增加了平均約 255617.5 倍之多。

4.3 是客戶端等待時間比較圖,其 x 軸為方程式變數 x 之值,而 y 軸則是 客戶端所需等待之毫秒時間,由此圖可以得到在快取前之FR 與原本 PHP 相比,

客戶端平均約需增加4.6%的等待時間,但在快取之後,即 AFR,客戶端平均較 原先PHP 省下約近 99.9%的等待時間。

故由這些數據可資證明,Application-Level 動態網頁快取系統確實可以有效 的縮短客戶端之等待時間,以及較先前未使用Application-Level 動態網頁快取系 統前,伺服器之處理能力確實有著大幅之提升,這尤其是對於執行需大量計算資 源之動態網頁應用程式所在之伺服器端,確實有著顯著之助益。

We b Se rve r Thoughput -- CPU-Bound We bApps

0.93

0.3 0.82

0.4 0.24

811.43 812.89 817.06 806.51 814.69 818.25 821.67

0.1 0.1

0.2 0.2

0.4

0.2 0.11 0.1 0.1

0.1 1 10 100 1000

100000 200000 300000 400000 500000 600000 700000

variable x

Server Acceptable Request Per Second

PHP FR AFR

10 conn , 1call/conn

圖4.2、Exp. CPU-Bound 伺服器處理能力之比較圖

Average Acce ss Late ncy -- CPU-Bound We bApps

1096.59

2456.93

3776.88

5051.33

6480.29

7861.43

9216.05

1255.43

2644.88

3984.78

5355.32

6792.91

8091.43

9461.36

1.24 1.24 1.23 1.25 1.23 1.22 1.22

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

100000 200000 300000 400000 500000 600000 700000

variable x

Milliseconds

PHP FR AFR

10 conn , 1call/conn

圖4.3、Exp. CPU-Bound 客戶端等待時間之比較圖