第五章 Proxy 的替換機制
5.3 排它性實驗
5.3.1 作業程序介紹
本排他性(evictor)實驗是參考「物件導向技術及應用研討會」內容 中的篇論文,關於這方面有 email 致函請教,獲益匪淺,受益良多。
這一次的排他實驗中讓我有許些體認到排他性的確有增加瀏覽網路 的效能。在檔案的部分,設小型檔為 16kb 以下,中型檔居 16 至 256kb 之間,大型檔在 256kb 以上,根據指導教授的建議,我將網頁結構分 成 5 種類型:
1.小型檔居多的網頁:最常見於網際網路的網頁,一個網頁裡面,放 了大量的文字或小圖形,所有的物件加起來不超過 1mb 的網頁,(簡 稱:小),如下圖所示:
2.小檔多包含中型檔的網頁:一個網頁裡面,除了文字與小圖形,也 有包含 16kb 以上的物件圖,所有的物件加起來不超過 1mb 的網頁(簡 稱:小中),如下圖所示:
3.小中大檔皆有的網頁:第二常見於網際網路的網頁,圖文並茂的網 頁內放了圖片文字與音樂,小中大物件都有。(簡稱:小中大),
如下圖所示:
4.中型檔多包含少量大檔的網頁:放了中型檔圖形,所有的物件加起 來超過 1mb 的網頁,(簡稱:中大),如下圖所示:
5.大型檔的網頁:寬評專用的網頁,線上音樂或多媒體引片一個網頁 裡面,放了大量的文字或小圖形,所有的物件加起來不超過 1mb 的 網頁,(簡稱:大),如下圖所示:
根據指導教授的建議,在相同得網路速度之下,也對一些不同大小順 序的存取做試驗,試圖整理思考出其置換定理與排他性的效用,以下 大小順序用上面的編號,1 為小,2 為小中,以此類推。
以下為樣本類型:
# 類型 總容量 檔案數量 特性 網頁代號
1. 小 338kb 52 檔,51 小檔,1 中檔 - nt07 2. 小中 750kb 47 檔,43 小檔,4 中檔 - nt05 3. 小中大 3.39mb 29 檔,20 小檔,6 中檔,3 大檔 2mb 的 mp3 nt04 4. 中大 2.00mb 12 檔,10 中檔,2 大檔 1mb 的 bmp nt08 5. 大 4.41mb 6 檔,2 中檔,4 大檔 3mb 的 mp3 nt09
【實驗方法】:碼表。
以人工方式判斷瀏覽器下載完檔案,決定全程時間大小。
【設定方式】:更動 config 檔,使用專為 proxy server 設計的 cgi 檔來更改 proxy-server.conf 檔之 Cache_Mem 值與
Maximum_Object_Size
值,Cache_Mem 是用來指定快取使用的記憶體容量上限;
Maximum_Object_Size 是指定快取網頁物件容量上限,超過此限物件 不予快取。
【清空 cache】:為了確保實驗的準確性,必須在每次不同的實驗下 執
行清空 chche 這個動作。
cd /var/spool/squid//etc/rc.d/init.d/squid stop rm -rf 00 ~ 03
/usr/sbin/./squid -z
cd /var/spool/squid//etc/rc.d/init.d/squid start
5.3.2 實驗一
有排他性
問題討論:
由此實驗結果得知,第一次存取所花的時間比有排它性及無排它性的 存取時間來的多一些,而無排它的策略在一些實驗下發現比有排它性 所花的時間來的大,因為無排它性的策略有花時間在 swaping 置換檔 案,所以排他性可以減少這類的時間浪費。
但是,以時間上的差別來看,幾乎第一次存取、無排它性策略與排它 性策略的時間只相差 1~2 秒鐘,若再考慮誤差的因素來看,感覺上這 三種實驗情況所得到的數據並沒有太大的差別。
所以經過檢討與跟指導教授的討論後,發現到由於我們的測試網頁放 在 Knight 主機上,而 Proxy Server 與 Knight 主機十分近,且兩者 之間的速度為 100M,所以即使 Cache Miss 後,要到 Web Server 抓 資料,這段路徑所花的時間是非常之短,所以才會顯示這三組實驗的 平均數據不相上下。如下圖所示:
If cache miss FCU 100M
100M
internet T1
Knight
Cache
Home Pc
實驗二:
經由第一次的實驗後,這次的實驗我們將改變 Web Server 的位置,
以更換 Proxy Server 與測試網頁的 Router,目的是使 Proxy Server 與 Web Server 之間的網路速度變慢,而 Client 端到 Proxy Server 之間的網路速度是快速的,如此一來,才能突顯出有無 Cache 與有無 排它性策略的明顯差別。如下圖所示:
if cache miss internet
慢
Internet T1
討論:
第二次實驗立即遇到的困難。
第二次實驗指導教授希望我們在學校網路實驗室裡面上網,藉由我們 的 proxy server 連到外面固定 ip 的網頁(203.217.100.147)測試,
實驗時的一點小失誤讓我們有所新發現,測試數據出來時,就發現了 一個大問題:
網頁只要連過一次,即使把我們的 proxy server 快取刪除,速度依 然等同快取時候的速度,這問題也在學校以外的 T1 網路證實過,快 取刪除後速度與快取到時候的速度差不了多少,感覺像是快取到了一 樣。
Web Server
Cache
Home Pc
以下是 T1 連 203.217.100.147 實驗網頁的部分數據
1.先測試組
有排他性 Maximum_Object_Size=512KB 順序瀏覽累計時間
1,56.27 41.33 41.63 41.11 40.76 41.11 41.86 41.10 41.70 … 5.大 >4 分鐘 52.11 52.13 51.63 52.68 53.69 54.63 53.80 54.10 … 以下是學校網路實驗室連 203.217.100.147 實驗網頁的部分數據
1.先測試組
無排他性 Maximum_Object_Size=4096KB 順序瀏覽累計時間
12.30 13.15 12.30 13.22 12.19 12.32 … 5.大 2’10.
99
15.34 14.98 14.83 15.68 15.23 15.01 …
當在測量第五個實驗數據時,嚐試了將 proxy server 的 cache 刪除 甲大學 proxy server〞就會先幫我們存起來,相當於〝逢甲大學 proxy server〞為 proxy 的 parent 而我們的 proxy 為 child。
如下圖所示:
internet
第一次 cache miss
Parent 期望的路徑
100M
第二次後的
cache miss 100M child
為了改善不利於我們測量準確性的環境,所以在 203.217.100.147 的 地方增設許多數量相同大小不同資料夾的測試網頁,供給我們多做幾 組數據,因為不同路徑無論是大小或是檔名相同的檔案,proxy server 都一定要〝快取〞到。但是,當測試排他性時,卻發現結果 依然錯誤。
因為〝逢甲大學 proxy server〞的機器並沒有排他性,也就是說,
即使我們的 proxy server 產生排他,但〝逢甲大學 proxy server〞
並沒有排他的機制,以致於在擷取所需的較大檔的網頁是直接向 parent 讀取,並不符合我們所要測試的環境要求。
Web Server
Home Proxy Pc
server Cach 學校的
server Cache
如下圖所示:
internet
第一次 cache miss
parent 排他後,
期望的路徑
排他後的 cache miss
child
基於受到〝逢甲大學 proxy server〞的限制,小組討論後,決定找 另一個 ip 做實驗。
Web Server
Home Proxy Pc
server Cach 學校的
server Cache
實驗三:
由於前兩次實驗環境的因素導致數據的不正確,經過分析討論後,將 proxy server 與 web server 再做一次適當的環境調整(如下圖所 示),測試的網頁資料也有做稍微的調整修改。以下為調整後所測得 的完整實驗資料與數據。
Proxy server:
Web server: 140.134.4.20
10M
internet T1
以下是修改後測試的網頁的格式,位置在 140.134.4.20 的學生網頁 上。
1.小 73 檔,73 小檔,小於 30kb 共 1.57mb nt11 2.小中 62 檔,50 小檔,12 中檔 共 1.91mb nt14 3.小中大 30 檔,20 小檔,9 中檔,2 大檔 共 2.73mb nt04a 4.中大 13 檔,272~724Kb 之間 共 5.85mb nt12 5.大 4 大檔,741~2793Kb 共 7.37mb nt13
User
Web Server
Proxy Server
測試一:
無排他
Cache:100M Maximum_Object_Size=4096KB (單位:min’sec)
測量 #1 #2 #3 #4 #5 #6
1.09 1.40 1.76 1.75 2.06 1,1,1,1,1 9.29
平均:1.612
2.21 2.18 2.35 2.06 2.20 2,2,2,2,2 14.56
平均:2.2
2.77 2.70 2.74 2.78 2.97 3,3,3,3,3 17.91
平均:2.792
5.92 5.97 6.02 6.12 5.80 4,4,4,4,4 40.64
平均:5.822
15.99 14.83 15.02 15.10 15.45 5,5,5,5,5 51.97
平均:15.278
討論:
以上的測試,主要是為了確認有快取與沒有快取在存取資料所花費的 時間上有懸殊的差別。
測試二:
對照組:無排他
Cache:2MB Maximum_Object_Size=4096KB (單位:min’sec)
#4 15.08 18.24 41.70 #5 15.13 17.59 41.03 2,3,4
#4 9.17 41.04 50.52 #5 9.39 41.17 50.95 1,4,5
Total:101.31
(Total)平均:100.768
實驗組:排他性
Cache:2MB Maximum_Object_Size=128KB (單位:min’sec)
#4 17.86 14.30 9.54 #5 18.01 14.59 9.39 3,2,1
比較:
若 Cache Memory 大小不變,而將 Max_Object size 加大為 512KB 後 結果會是如何?
實驗組:排他性
Cache:2MB Maximum_Object_Size=128KB (單位:min’sec)
測試 #1 #2 #3
15.87 19.13 40.26 14.82 18.66 40.17 15.62 17.44 40.40 2,3,4
Total:75.26 (Total)平均:73.555
17.80 14.92 9.26 17.89 14.45 9.14 18.68 14.51 9.16 3,2,1
Total:41.98 (Total)平均:41.765
討論:
所測得的結果為即使加大 Max_Object size 而 Cache 大小不變,將無 法使排他性發揮其效能,因為 Cache 不夠大,測試過程 Cache 內的資 料都被置換掉了。若 Cache Memory 加大,而 Max_Object_Size 也隨之 而變化,其結果會如何呢?(測試三)
測試三:
對照組:無排他
Cache:4MB Maximum_Object_Size=4096KB (單位:min’sec)
測試 #2 #1 9.39 14.63 17.56 40.27 9.16 14.56 17.58 40.34
#3 9.50 14.47 17.79 40.38
#4 9.45 14.65 17.68 40.56
#5 9.57 14.71 17.42 40.49 1,2,3,4
Total:81.85
(Total)平均:82.078
實驗組:排他 Cache:4MB Maximum_Object_Size=128KB
(單位:min’sec)
測試 #2 #1 9.29 14.29 17.79 40.50 1.60 9.78 14.68 40.28
#3 1.63 9.90 14.43 40.72
#4 1.83 9.64 14.79 40.60
#5 1.68 9.69 14.31 40.48 1,2,3,4
Total:81.87
(Total)平均:66.51 Cache:4MB Maximum_Object_Size=256KB
(單位:min’sec)
測試 #2 #1 9.51 14.62 17.88 40.24 9.66 14.80 17.90 40.39
#3 9.57 14.97 17.98 40.38
#4 9.44 14.84 18.11 40.72
#5 9.84 15.01 18.10 40.77 1,2,3,4
Total:82.25
(Total)平均:83.098
比較:
(單位:min’sec) 測試
Cache=4MB
無排他性 排他性
(Max=128KB)
排他與無排他 比較
誤差:約 2(s) 1,2,3,4 82.078 66.51 排他性快
(約 16 秒) 排他性
(Max=256KB)
1,2,3,4 82.078 83.098 兩者約相等
討論:
小組討論後,認為若能將網頁 1、2、3 的小檔案留在 Cache 中,排他 性的效能應該會比實驗二的結果更為顯著。
於是在我們適當的將 Cache Memory 調大為 4MB,但 Max_Object 大小 不變,實驗結果的數據顯示排他性的效能上比無排他性的效能又更好 了一些,原因是網頁 1、2、3 的小檔案全部都如預期的留在 Cache 中,
且小檔案總合小於 4MB(在沒排他的前提下,不會被置換掉),而無排 他性的測試在 Reload 網頁時,由於先前的檔案都被置換出去了,所 以全部 Cache Miss(與測試二結果相同)。接下來將排他大小調為 256KB 的限制後,發現與第一次 Cache Miss 的結果是一樣的,所以 我們斷定假使再調為 512KB 後的結果亦如此,理由是因為 Cache 內可 容納的檔案大小變大也變多,但 Cache Memory 的大小卻依然不變,
以至於全都被置換出去,跟無排他機制的結果是無差別的。
測試四:
對照組:無排他
Cache:6MB Maximum_Object_Size=4096KB (單位:min’sec)
測試 #2 #1 9.48 14.38 17.85 41.32 9.93 14.69 17.63 40.50
#3 9.39 14.69 17.79 40.37
#4 9.77 14.83 17.73 40.97
#5 9.51 14.55 17.90 40.79 1,2,3,4
Total:83.03
(Total)平均:82.61
實驗組:排他 Cache:6MB Maximum_Object_Size=128KB
(單位:min’sec)
測試 #2 #1 9.36 14.73 17.87 40.42 1.73 10.30 14.94 40.17
#3 1.70 10.03 15.09 40.33
#4 1.86 9.96 14.95 40.12
#5 1.85 10.02 14.74 40.03 1,2,3,4
Total:82.38
(Total)平均:66.95 Cache:6MB Maximum_Object_Size=256KB
(單位:min’sec) Cache:6MB Maximum_Object_Size=512KB
(單位:min’sec)
測試 #2 #1 9.43 14.13 17.70 40.74 9.41 14.46 18.03 40.53
#3 9.21 14.42 17.71 40.55
#4 9.58 14.67 17.69 #4
#5 9.40 14.68 17.59 #5 1,2,3,4
Total:82
(Total)平均:82.18
比較:
(單位:min’sec) 測試
Cache=6MB
無排他性 排他性
(Max=128KB)
排他與無排他 比較
誤差:約 2(s)
1,2,3,4 82.61 66.95 排他性快
(約 16 秒) 排他性
(Max=256KB)
1,2,3,4 82.61 55.32 排他性快
(約 27 秒) 排他性
(Max=512KB)
1,2,3,4 82.61 82.18 兩者約相等
討論:
考慮將 Cache Memory 大小設為 6MB 與 Max_Object_Size 都一起調大 為 128KB、256KB、512KB 來觀察排他大小的限制相對於 Cache 的大小,
對系統的效能有怎樣的變化。
得到的結果為當 Cache 大小設定為 6MB,配合排他限制為 256KB 時所 得到的效能是最好的。由於網頁 1、2、3 內小於 256KB 的檔案都被存 放入 Cache 中,且總空間不超過 6MB,所以排他的效能較之前的測試 又更為優越。而非排他性的測試中,Cache 由於容量的限制,往往被 大的檔案置換掉,以至於每次都得到 Web Serve 重新抓取資料,效能 當然不如有排他性的機制。
測試五:
對照組:無排他
Cache:10MB Maximum_Object_Size=4096KB (單位:min’sec)
14.16 17.51 41.07 50.6 9
#3 9.3 3
14.54 18.48 40.67 51.0 2
#4 9.5 9
14.35 17.90 40.76 50.7 3
#5 9.3 7
14.34 17.64 40.66 51.0 6
Cache:10MB Maximum_Object_Size=128KB (單位:min’sec)
10.19 14.81 40.20 50.6 6
#3 1.7 6
10.12 15.19 40.47 50.1 0
#4 1.7 7
9.98 15.05 40.31 49.5 5
#5 1.8 8
10.75 15.61 40.84 50.6 8 1,2,3,4
,5
Total:132.81
(Total)平均:117.933
Cache:10MB Maximum_Object_Size=512KB (單位:min’sec)
2.44 8.21 23.07 51.0 0
#3 1.7 3
2.34 8.57 23.20 50.5 0
#4 1.7 8
2.51 8.45 23.29 50.9 8
#5 1.6 7
2.46 8.24 23.51 51.2 3 1,2,3,4
,5
Total:132.4
(Total)平均:86.698
比較:
(單位:min’sec) 測試
Cache=10MB
無排他性 排他性
(Max=128KB)
排他與無排他 比較
誤差:約 2(s) 1,2,3,4,5 133.353 117.933 排他性快
(約 15 秒) 排他性
(Max=512KB)
1,2,3,4,5 133.353 86.698 排他性快 (約 47 秒)
討論:
經由前幾次測試後得到的結果發現,若 Cache 與 Max_Object Size 都 能在某種範圍或者某種程度上的加大,其排他性的效能應該會更好。
所以,在這次的測試當中,我們將 Cache Memory 大小設定為 10MB,
Max_Object Size 為 512KB,目的是為了讓網頁 1、2、3、4 中小於 512KB 的檔案幾乎都保留在 Cache 中,如此一來,能省下的時間應該 就會更多,而實驗測試的結果的確符合所推斷出來的想法,而當我們 設定排他限制的大小為 128KB 時,數據顯示與 Cache=6MB,排他為 128KB 時的情形一樣,而至於 Maximum_Object_Size= 256KB,我們認 為應該與測量快取大小為 6MB 時的狀況是一樣的,因為所有 256KB 以
Max_Object Size 為 512KB,目的是為了讓網頁 1、2、3、4 中小於 512KB 的檔案幾乎都保留在 Cache 中,如此一來,能省下的時間應該 就會更多,而實驗測試的結果的確符合所推斷出來的想法,而當我們 設定排他限制的大小為 128KB 時,數據顯示與 Cache=6MB,排他為 128KB 時的情形一樣,而至於 Maximum_Object_Size= 256KB,我們認 為應該與測量快取大小為 6MB 時的狀況是一樣的,因為所有 256KB 以