|
為解決 CPU 與 Hard Disk 間的速度日益擴大,設計一個透過網路系統,以 服務整個實驗室辦公室為對象,具有數十 megabytes 的大型緩衝記憶體 (disk/file cache)的檔案伺服器.並藉由架構上的變革及演算法的配合, 達成多方面的改善.我們的設計主要獲得下列的改善:為降低 cache miss 的機會:藉著對 UNIX 檔案結構的變更,以及適當置換法則的設計,cache by file 等方法.提高檔案暫存記憶體的 hit ratio ,以使 response time 逼近於 memory access time.在檔案暫存記憶體的架構下,使用 delay write 的方法,固然可以減低磁碟的資料流通量,但也有一個缺點. 一但 cache miss 時,必須先將緩衝區的舊內容寫回磁碟,才可讀入新的內 容.造成 cache miss 時的回應時間 ,反而比沒有檔案暫存記憶體的架構 慢.我們藉由預先寫出的動作,將此 overhead 消弭,以使 cache miss 時 的 miss penalty 達到只耗費從磁碟讀取資料的時間.檔案暫存記憶體的 架構,有一個基本的問題,即使用者不知系統究竟何時才真正把資料存回磁 碟.而由於隨時的斷電危險,此段期間為資料的不安全期.一些較高階的演 算法使用每三十秒週期寫檔案暫存記憶體內含,將此段不安全期縮短至三 十秒.而我們藉由 Two Parallel Disk 的架構.即在回應回去後,立刻於 backup disk 且在連續區域寫回的方式,將此不安全期逼近於 sequential disk write time,而縮短至數秒的 level.基於 server 的對 象為同時多個使用者,我們藉由一塊數十 megabytes大型 disk/file cache,以防止有多個使用者同時做 IO 時,performance變的很差的情形. 如此大型的 disk/file cache,足以容納此尖鋒時刻所有擁入的 request 的空間需求,並保持此段時間的working disk bandwidth使用於加快 response(read data),而留待尖峰時間過後,再逐一處理 (write data), 以對有限的 bandwidth 做最有效的利用.
|