2005-12-03

Windows 2000/XP/2003 memory tweak

Windows 2000 以後的記憶體調教算是 FAQ 了, 不過還是記下來

1. kernel
Windows 的 kernel 通常會和程式一樣會被 swap 出記憶體, 如果強制把 kernel 通通放到 RAM 上,多少對效能會有所提升.
kernel 的大小約 150MB ,如果 RAM 不到 256MB ,做這個是沒有意義的(不過現在應該很少這種硬體在跑windos 2000了吧??)

開啟 regisytry editor ,找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management .
新增 DWORD 値, 命名為 DisablePagingExecutive
值設定為 1

或是直接在系統內容裡面把 Memory usage 改成 System cache, 兩者似乎是一樣的(??

2. Pagefile
把 Pagefile 的大小設成固定值, 因為 Windows 的 pagefile 在檔案增大時效率其差無比.
這在系統內容裡面就可以設定.

3. Device driver I/O buffer size
Windows預設的 buffer size 是 512KB ,不太夠用. 依據 RAM 的大小把 buffer size 加大,對 I/O 方面的效能會有相當的提升.

開啟 regedit ,一樣是在
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Sessionmanager\Memory Management
新增 DWORD値, 命名為 IoPageLockLimit
值依以下公式設定





















RAM SIZE--設定值(以Byte計算)
<64MB--RAM size -7MB
64~512MB--RAM size -16MB
>512MB--RAM size -64MB

(不過我自己測試以後發現, 設定到 8MB 以上就沒有差別了...)

4. 如果 RAM 在3GB以上,在 boot.ini 裡加上 /3GB 的選項,不然 Windows 不會讓應用程式去用 2GB以上的部分(還真是笨的可以...)
再加上 /USERVA 也蠻有用的, 推薦是保守一點設定成 /USERVA=2800 就好, 數值改太大可能會讓某些 Driver 當掉.


5. 弄個 RAM Disk 來放 firefox 或 IE 的 cache,讓 browser 可以更快.
IE 可以直接由選單指定目錄, firefox 的話則要在 about:config 用 browser.cache.disk.parent_directory 指定 cache dir 的位置.

以上全部都做完,系統應該會比較快一點
至於大陸殘體中文網站上一堆亂七八糟的改法,並不建議使用,因為關閉一些仍然可能會用到的功能,可能會造成許多不可知的問題.

==
追加:
1.如果還有餘裕的話, 可以把 temp 目錄也丟進 RAM Disk 裡, temp dir 的設定在系統的環境變數設定裡.
2.某些網站有人在討論的 "把 pagefile 放進RAM Disk", 基本上是脫了褲子放屁的動作, 只要弄清楚 pagefile 的目的以及 Windows 對於 pagefile 的運作方式, 就很清楚為什麼這樣搞是無謂的.
關於 pagefile 與 ramdrive 的詳細關係有興趣的可以看 這篇 後面 追記2 的部分

沒有留言:

張貼留言