簡單比較 RamDisk , Cache , 軟體還原的特性

最近測了一些 RamDisk , Cache , 軟體還原 的工具軟體, 覺得有時候想比較綜觀地看一下這些軟體特性, 所以就整理了一下.


這張圖只是用來解釋一下各種軟體大概出現的位置, 有些軟體可能會有不同的設計, 所以僅供參考.

要說明這些軟體之前, 首先都要有個前提: CPU 內的暫存器與 Cache 最快, 記憶體其次, SSD 目前比硬碟快一些, 硬碟最慢; 硬碟平均成本低, SSD 其次, RAM 較高.
再來則是延伸幾個特性:
1. CPU 與 RAM 都是一關機資料就不見; SSD 內部是晶片, 若一個晶片損壞, 可能會造成整個 SSD 資料都會不見; 硬碟內部是碟片, 所以可能有壞軌會造成檔案損毀, 如果是電路板則可能整個硬碟無法使用, 但換電路板後也許可以救.
2. 記憶體管理受到作業系統限制: 最近常聽到的 32bit 只能使用 3.xG 記憶體, 或 DOS 的 640K 都是因為作業系統所遵循的規範.

了解這些前提與原則之後, 接下來就可以開始看看這些軟體的特性:
1. RamDisk : 由於使用記憶體模擬出磁碟, 所以速度極快, 可讀寫次數也遠大於磁碟, 但是因為關機後就無法保存資料, 所以適合"頻繁讀寫", "容量已知或可控制".

2. 快取軟體: 將記憶體保留一部份, 並攔截讀取/寫入磁碟的動作, 當需要讀取的資料已經在記憶體中, 就不用再讀取實體硬碟; 當需要寫入資料時, 也可以先保留在記憶體, 再一次寫入. 不過也有斷電時, 未完全回寫磁碟, 而資料損毀的風險.
目前市面上的作業系統都有內建這種功能, 只是為了安全考量, 通常只有讀取快取, 而沒有寫入快取; 並且為了記憶體用在實際執行程式, 快取空間並不會很大, 所以快取軟體可以讓使用者為了特別的需要, 另外擴充快取空間.

3. 還原軟體: 也是攔截讀寫磁碟的動作, 而著重在寫入的攔截, 比快取軟體著重是否允許異動控管, 而異動的保留區, 也依軟體而不同, 例如: 微軟提供 ewf 與 fbwf 給 Embedded 版的作業系統, 保留區是使用記憶體; 而市售某些還原軟體, 是以隱藏的分割區來保留異動的部份.

了解這些軟體的特性後, 再來考慮使用者可能的動作, 選擇較合適的應用:
1. 頻繁讀寫但不重要的檔案, 例如: 解壓縮暫存檔, 瀏覽器快取等; 因為檔案的產生與刪除都是由程式自動處理, 所以設定在 RamDisk 是最常見的作法.

2. 頻繁讀寫但是有需要存檔的檔案, 例如: 一般工作的檔案, P2P 的暫存檔. 如果記憶體夠大, 可以開 RamDisk 來存放, 而開或關機時再讀入或回寫, 不過也會需要一段時間轉移這些資料. 另外也可以用快取軟體, 針對分割區處理, 則可以減少轉移的時間.

3. 讀取需要而不需要寫入的檔案, 再考慮用還原軟體, 並且設定為不寫入, 例如: 商務或電腦教室使用的電腦, 並不太需要開放寫入(安裝)程式, 所以把資料跟程式分開, 在 Windows 常見分為 C: 與 D: , 也是有這方面的意義, 這樣程式區(一般是 C: )就幾乎不用寫入.

由於這些軟體的應用, 往往是以分割區(Partition / Volume)為單位, 所以就會把檔案依這些特性分類:
1. 是否需要寫入? 程式(偶爾寫入), 個人資料與下載檔案(稍常寫入), 瀏覽器快取檔(頻繁寫入)
2. 重要性? 程式與個人資料(很重要), 下載檔案(重要性略低), 瀏覽器快取檔(不太重要)
3. 是否要在開關機時移轉? 瀏覽器快取檔不需要, 其他都要移轉而且時間長短不一.

找出這些特性後, 再配合不同的軟體, 來發揮記憶體的特性, 提高系統效益, 以個人為例:
1. C: 程式: 使用 NTFS(壓縮) + 還原軟體, 由於程式只有讀取到記憶體才會執行, 不太需要寫入, 所以用 NTFS(壓縮) 減少讀取的資料量, 到記憶體解壓縮後才會執行, 另外有還原軟體可以梢微避免病毒.
2. D: 資料1: 使用快取軟體, 設定寫入延遲 10 秒, 因為我的電腦有不斷電系統, 但是也不希望資料遺失, 所以設定較短的寫入快取.
3. E: 資料2: 虛擬機器區, 設定寫入延遲 1 小時.
4. RamDisk : 瀏覽器快取區與 Windows 暫存, 使用 Imdisk , 用多少才算多少.
5. P2P 暫存區: 第二硬碟+快取軟體, 設定寫入延遲無限久, 因為 P2P 暫存檔讀寫頻繁, 為了分散使用量, 所以用另一顆硬碟, 另外配合快取軟體, 減少寫入; 如果要抓檔, 才接上這硬碟並開啟快取軟體, 平常使用時不會接這硬碟, 抓完的檔案再轉存到資料區.

這樣依不同用途, 可以彈性調整記憶體用量, 來減少磁碟讀寫的次數, 壓榨系統效能~