本章對於我們所提出的 hybrid disk aware buffer cache 管理機制的演算法和 evicted-buffer 過濾機制進行效能測試,4.1 節敘述我們的實驗環境,4.2 節敘述加入 我們機制的效能比較。
4.1 實驗環境
我們選擇 Linux 做為我們實驗的平台。我們的實驗包含兩台機器,如表一所示,這 兩台機器一台當作 Web server 一台當作 client 端。我們利用 httpload 這個 Benchmark 以測量網路傳送與接收的效能,而因為我們的實驗希望可以更貼近真實的使用方式,因 此我們取得了交通大學圖書館的 web log 做為我們 access list。
Server Client
Hardware CPU: Intel(R) Pentium(R) 4 CPU 1.60GHz
Memory: DDR 400 512MB~2GB
Hard disk: Seagate 60GB 7200RPM
NIC:Accton Technology Corporation EN-1216 Ethernet Adapter
CPU:Intel(R) Pentium(R) 4 CPU 1.60GHz
Memory: DDR 400 256MB
Hard disk: Seagate 60GB 7200RPM NIC: Accton Technology
Corporation EN-1216 Ethernet Adapter
OS Linux 2.6.19 Linux 2.4.18 表一 實驗環境
4.2 Hybrid disk aware buffer cache 管理機制的測試與分析
在這一節我們將利用多個 web clients 對 web server 的資訊作存取來測試我們的 管理機制是否能夠獲得好處。
首先,我們知道當資料流超過 buffer cache 可以負擔的大小時,buffer cache 會 依照系統的 replacement 機制將不常用的資訊搬出,為了加速我們的實驗,因此我們準 備了 4096 個 128KB 的小檔案和 8 個 64MB 的大檔案作為 working set,在短時間之內利 用多個 client 去隨機存取這些資料。我們固定系統可以使用的記憶體空間,讓 workload 超過記憶體的負載,因而開始持續的做 buffer cache replacement 的動作,以下是以 512MB main memory 和 512MB 的 flash memory,隨機讀取 work load 10 次所做出的實驗 結果,如圖十二:
圖十二 Cache and fetch performance(512mbytes ram,512mbytes flash memory)
從圖中我們發現,經過10GB 的 workload 之後我們將 220MB 左右的小檔案抓入 flash memory 當中,而在讀取 10GB 的過程,flash memory 一共提供 300MB 左右的 IO 量,
也就是說我們成功減少了300MB 的 disk IO,但是之後在做一次 10GB 讀取時並沒有顯著 的提升 flash memory 中有的資料。對此,我們懷疑是因為記憶體太大,造成絕大部分 的小檔案在 buffer cache 裡面充斥著,根本不需要去做 disk IO,因此我們將 main memory 的大小調成 256MB 再做了一次實驗,以下是實驗的結果
圖十三 Cache and fetch performance(256mbytes ram,512mbytes flash memory) 從圖中,我們看到了竟然因為main memory 大小變小,使得原本 flash memory cache 到的小檔案變的更少。原因是因為main memory 過小,造成 page 幾乎在 buffer cache 裡 面都待的不久,因此page 很少能夠通過 long-term 的標準,最後造成 block 進入 flash memory 過少的情況。
因此我們發現,此方法在main memory 太大時,因為根本不需要去做 disk IO 而造 成效能低落,在main memory 過小時,又會發生沒有辦法符合 long-term 標準的缺點,
以致於此方法在使用上不論何種情況皆沒有辦法發揮好的效能,因此在設計上可能要再
Flash Memory Sizes Cache Data Sizes
0
Flash Memory Sizes Cache Data Sizes
0
次做思考。