引用:
|
作者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)