瀏覽單個文章
chlang
Master Member
 
chlang的大頭照
 

加入日期: Dec 2001
文章: 1,747
引用:
作者chlang
其實我最想要知道的是:

如何避免 Windows 把執行的程式 Swap 出去, 來增加讀取檔案的 cache.

每次遇到大量讀取檔案就會接近當機, 結果發現通通跑去當 Cache 了.


自問自答:

幾經搜尋, 終於找到一篇文章提到:
http://support.microsoft.com/kb/837331/en-us

如果你你是 32 Bit 的 Windows 2003 的話, 那微軟神奇的 Cache Manager 會認為你的 Cache 最大可以到達.

IA-32 (LargeCacheSize value = 0) Not available 512 MB
IA-32 (LargeCacheSize value = 1) Not available 960 MB

(看你的 Regedit 有沒有開啟)

如果你運氣好, 系統是 64 bit 模式
IA-64 128 MB 1 terabyte

等等, 這樣不對, 因為不可能開 Cache 到 1024GB
因此有另外一個算法:
IA-64: 128 MB + (Physical memory - 16 MB) / 8 MB x 64 MB

簡單的說, 如果你的系統有 512M, 那 Cache Manager 如果需要, 它最多會吃到....
128 + (512-16) /8M*64M = 4096MB

當然, 如果你系統加到 1G 的話, 請準備流汗
128 + (1024-16)/8M*64M = 8192MB

很神奇吧, 所以說你的記憶體有多少, 它就認定可以吃記憶體的 8X 容量來當 Cache.

(下次試試看吧, 大量複製檔案時, 系統就算是記憶體耗盡, 也還是打算開 Swap 來繼續加大 Cache)
 
舊 2006-10-29, 01:59 AM #42
回應時引用此文章
chlang離線中