與你聊聊大容量記憶體的使用效率^^

jamesfuh

榮譽會員
已加入
9/21/03
訊息
3,401
互動分數
3
點數
38
最近記憶體區.高頻與大容量記憶體輩出.真是好不熱鬧^^
尤其大部分網友入手的都是4GB*4=16GB起跳...

這種起跳法.可以說是相對過去世代的記憶體的高價與容量不足的代償現象...
(當然有些熱情網友更是非把四槽.八槽插滿不可^^)

增加記憶體是有助益作業系統磁碟IO效能的(後面會解說)...
但也造成擁有大容量記憶體後.反向的一些誤解措施...

我們先來看一張圖...
i136018_snap0417.png


這張圖您要如何詮解?

哇.好大的記憶體容量.但只用到8GB/32GB...
應該加裝個20GB以上Ramdsk才對.這樣才不會浪費^^

以上應該是大部分網友的反應...
但這應是不正確的看法...

進一步...
可以從圖中下半部見到"未使用"為0狀態.這記憶體的使用.應是在不錯的效率狀態!!

在深入討論前.請網友閱讀一篇相當深入性的文章...
(本討論也植基在這篇文章的概念...)

[SSD] 谈大容量内存的各种使用方案对磁盘效率影响
http://bbs.pceva.com.cn/thread-35083-1-4.html

這篇文章揭櫫一個重要的觀點.如下
i135382_snap0401.png


看到劃紅線部分了嗎?這也是我寫這篇文章的原因...

再來看看Win7下記憶體使用的分佈結構...
i135375_snap0400.png


其中空閒容量=可用-緩存
也就是當空閒(未使用)為0時.是記憶體是最大利用狀態.也是Win7緩存cache系統最大效益時^^...

其次來談談Win7的快取系統...
Win7的快取系統.基本上就是利用記憶體的空閒空間.來作為預先快取與一般快取...
以前Vista被人詬病背景程式太多.記憶體cache耗用龐大.其實那時Vista真是用心良苦...

但Win7時代來了.記憶體容量也大幅增加...這可好了^^
但快速SSD的出現.Win7被迫關閉了Superfetch.Prefetch(主動式)...
但一般被動式的記憶體cache依然運行無誤!

也就是Win7作業系統下.記憶體空間並非空閒著沒事.而是正在作助益整體磁碟IO效率的快取(緩存)動作...

至於這些空間如何才能達到最佳利用效率?...

大概有兩個因素
1. 時間

正常使用狀態下.大約1-2天緩存系統.可能就充滿可用記憶體...
這時系統應是最順的.因為處處IO都被緩存雨露均霑^^

例如下圖大約是兩天左右...
i135161_snap0350.png


2. 系統IO頻率

舉例試開啟我的兩台Virtual Box(記憶體設12GB)...記憶體馬上塞爆!
i135383_snap0404.png


可觀察快取與可用記憶體都大量降低...
這當然是瞬間被Virtual Box驚人佔用掉!
關掉後...

i135384_snap0405.png


未使用大幅增加成為25245MB.快取大降為2144MB

接下來我進行複製一個ISO檔...
i135385_snap0406.png


還在複製中...未使用就已耗完.快取也增為27293MB

這在說明系統disk IO的頻繁程度.正與windows快取系統息息相關^^

愈是繁忙的系統.Windows的cache快取系統愈是重要....
所以增大記憶體容量.真是有助於增益系統效能的...
尤其伺服器級緩存cache系統.更是如此幫襯著...

所以可以試著建立如所引文章的一個觀念.空閒著也是Win7系統的一種記憶體使用方法...
別以為浪費.就拿Ramdsk去塞在原本可以成為增益系統的Win7cache需要的記憶體上!

記憶體容量真有餘裕時.才安裝Ramdsk...
至於32位元系統.更不建議任何ramdsk了...

接下來.我們來聊聊Ramdsk,Cache,Buffer.pagefile.sys甚至環境變數Temp關係...
 

我不是天才

高級會員
已加入
11/9/11
訊息
690
互動分數
2
點數
18
網站
www.facebook.com
獲益良多,謝謝分享^^
之前就在想說用了Ramdisk當硬碟快取怎麼反而變慢,現在終於知道為甚麼了~
 

jamesfuh

榮譽會員
已加入
9/21/03
訊息
3,401
互動分數
3
點數
38
Ramdsk的使用者.用得如魚得水的當然多.而造成麻煩困擾的也不少...

可以特別注意的是.Ramdsk造成的當機.大部分都是硬體代碼...
這說明Ramdsk在作業系統下.是被當成硬體來看...
寫得不好.相容性不佳的Ramdsk軟體.自然需要淘汰.不要自找麻煩...

如果透過上述文章.知道Ramdsk會與Win7 cache系統搶空間.那麼更要謹慎使用^^

其次談談Temp.環境變數等..

位於C:\user\..\AppData\ 下有三個目錄...
i136020_snap0002.png


i136022_snap0004.png


這些是所安裝軟體的一些設定.環境檔案.是不可刪去的...
尤其Roaming目錄.看起來很像暫存檔案.但刪除通常都會造成軟體出問題狀況...

另位於C:\user\..\AppData\Local\下.有許多空目錄...
i136024_snap0006.png


這些就是安裝或執行軟體時的真正暫存檔案.但經常為0(空目錄而已)

上面這些Windows作業系統.是不會讓你設到Ramdsk裡的...

再來看看可以更改的環境變數Temp...設到Ramdsk後...
i131714_snap0327.png


仔細去瞧.這些暫存.就真的可有可無.隨時可以刪去...
而且所佔容量.真的很少^^

也就是說...
一般使用者.設了Ramdsk拿來放暫存.其實只暫存了一點點(一天常常不到10MB)...
真的可以不需這個動作...

而較深入或特定使用者.設Ramdsk拿來放google cache. IE Temporary Internet Files. Photospoh圖檔.甚至整套遊戲等...
上面作法.都可說是當作特定檔案buffer之用...
只要Ramdsk驅動運作順利.而且能兼顧不影響Win7系統cache功能.就無妨...
而非設了Ramdsk.去強調效能.這應是本末倒置的...
別忘了還有大容量的SSD更是適合拿來當檔案Buffer之用...

至於pagefile.sys的討論.放入Ramdsk中.更是本末倒置....
pagefile.sys早期是因為記憶體不足而設的...
如果記憶體充足.pagefile.sys可以不設.或改至最小...
但回頭放入Ramdsk中.這真是不智啊...
而且有些不佳的Ramdsk驅動甚至比pagefile.sys晚啟.而造成記憶體為0困惑...

至於Fancycache等.這些類似Window Cache的快取軟體...
在您相當了解Win7的快取系統之後...
或許您有特定需求而使用fancycache等...
去針對特定HDD等這些機械結構零件.作些保護...
但絕不宜強調Fancycache.足以全面取代Win7本身的快取系統...

尤其玩測速軟體.測Ramdsk多快多快.這其實一直誤導了使用者....
實際使用上.卻害了Win7本身的Cache系統...
記憶體還是留給Win7作業系統好好利用吧...

真想享受大容量記憶體的好處.請學習些適當的觀念...
而熱衷於記憶體容量與快速IO的玩家.選購個SSD是更好的選擇^^


本文參考文章...

[SSD] 谈大容量内存的各种使用方案对磁盘效率影响
http://bbs.pceva.com.cn/thread-35083-1-4.html

[SSD] 4K随机性能等于4K小文件性能吗?多系统图文测评
http://bbs.pceva.com.cn/thread-36832-1-1.html

[64位元] 請別把 pagefile.sys 放到 ramdisk
http://www.coolaler.com/showthread.php/300942-64位元-請別把-pagefile-sys-放到-ramdisk

[推坑時間] 傳統硬碟 + ramdisk 或 SSD ? , 來顆 SSD 吧~
http://www.coolaler.com/showthread.php/299678-推坑時間-傳統硬碟-ramdisk-或-SSD-來顆-SSD-吧

ramdisk真的有比較快?
http://www.coolaler.com/showthread.php/299404-ramdisk真的有比較快

請問用RAMDISK玩遊戲的問題???
http://www.coolaler.com/showthread.php/301152-請問用RAMDISK玩遊戲的問題
 

Toppc

榮譽會員
已加入
12/19/04
訊息
11,405
互動分數
230
點數
63
^^受教了!!
 

Happypc

********.com低階會員
已加入
6/22/08
訊息
17,748
互動分數
0
點數
0
網站
www.coolaler.com

我不是天才

高級會員
已加入
11/9/11
訊息
690
互動分數
2
點數
18
網站
www.facebook.com
真的太詳細了!
超讚;face0;
 

shown013

一般般會員
已加入
2/19/12
訊息
161
互動分數
0
點數
16
那XP用RAM disk 會不會比較好啊?
 

jamesfuh

榮譽會員
已加入
9/21/03
訊息
3,401
互動分數
3
點數
38
那XP用RAM disk 會不會比較好啊?

XP的記憶體管理程式.印象中是一直被人詬病的...
所以有許多第三方記憶體管理程式存在...
例如FreeRam XP Pro, Ramdefrag, vscache...等等.但一樣問題很多...

另XP OS有使用64bit的嗎? XP下的RAM有多大呢?

如果RAM>4GB.但只用32Bit的XP...
因XP確實用不完4GB記憶體.或許可以切割少量玩玩Ramdsk.作為特定buffer用途.作特定程式之IO增益...
但XP不太可能因Ramdsk而增快整體效能.這是必須了解的...

話說回來...
要增進XP的整體IO效能.其實買個適中容量的SSD是最直接的...
因為SSD正是兼具快速IO,檔案Buffer,4K存取效能最佳的=>作業系統運作的儲存媒體 ^^
 
最後編輯:

zyx1487

低等會員
已加入
5/25/11
訊息
1,352
互動分數
31
點數
48
很實用感謝jamesfuh大的解說:MMM:
 

st930324

一般般會員
已加入
10/19/11
訊息
78
互動分數
0
點數
6
所以說方法是看需求或用途而定,沒有絕對...

樓主這篇文章,比起前一陣子的"討論"要簡單易懂,在下受教了。
 
▌延伸閱讀