第四章 系統效能評估
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 客戶端等待時間之比較圖